このステップでは、同じコードをコンパイルしてホストでのみ実行するアプリケーションを生成します。ここで示す方法を参考にして、コンパイラーによりオフロード言語拡張が無視されるコードをコンパイルし、アプリケーションがホストでのみ正しく実行されることを確認できます。ホストでアプリケーションを正しく実行できたら、そのコードをコンパイルしてホストとターゲットの両方で実行するアプリケーションを生成することができます。
次のコマンドを実行して、以前のコンパイルから既存のモジュールを削除します。
rm -f *.mod
次のコマンドを使用してソースコードをコンパイルします。
ifort -openmp -no-offload tbo_sort.F90 -o tbo_exe_CPU
no-offload オプションを指定すると、コンパイラーはオフロード言語拡張を無視し、__INTEL_OFFLOAD マクロを定義しません。 #ifdef 宣言子 には、ターゲットとターゲット固有の宣言子を検出するコードブロックが含まれています。
次のコマンドを使用してアプリケーションを実行します。
./tbo_exe_CPU
以前と同様に、アプリケーションは最初の 20 個の値を昇順で表示し、最初の 10 個の偶数、奇数、素数を表示します。ただし、コンパイラーは #ifdef 宣言子 と __INTEL_OFFLOAD マクロを含むコードブロックを無視するため、ターゲットの数は表示されません。
このステップはチュートリアルの最後のステップです。