サンプル・アプリケーションをコンパイルする

hello_image.f90 サンプルは Hello world アプリケーションです。通常の Hello world とは異なり、この Co-Array Fortran プログラムは、ホストマシンで平行して実行される複数のイメージ、またはプロセスにスポーンします。このアプリケーションのソースコードは、次のように単純な Fortran プログラムです。

program hello_image

  write(*,*) "Hello from image ", this_image(), &
              "out of ", num_images()," total images"

end program hello_image

this_image() および num_images() の関数呼び出しに注目してください。これらは、新しい Fortran 2008 組込み関数です。num_images() 関数は、このプログラムでスポーンされたイメージまたはプロセス数の合計を返します。this_image() 関数は、1 から N の範囲の各イメージの一意の識別子を返します。N はこのプログラムで作成されるイメージの合計数です。

Co-Array Fortran 機能を含むこのサンプルをコンパイルするには、/Qcoarray:shared コンパイラー・オプションを使用します。このコンパイラー・オプションは、プロジェクトの [プロパティ ページ] ダイアログボックスですでに設定されています。

  1. [プロジェクト] > [プロパティ] を選択します。プロジェクトの [プロパティ ページ] ダイアログボックスが表示されます。

  2. プロジェクトの [プロパティ ページ] ダイアログボックスで、[構成プロパティ] > [Fortran] > [Language (言語)] > [Enable Coarrays (Co-Array を有効にする)] を選択し、リストボックスに [For Shared Memory (共有メモリー) (/Qcoarray:shared)] が表示されていることを確認します。[OK] をクリックして、[プロパティ ページ] ダイアログボックスを閉じます。

  3. [ビルド] > [ソリューションのリビルド] を選択して、ソースコードをコンパイルします。

  4. [デバッグ] > [デバッグなしで開始] を選択して、アプリケーションを開始します。

出力結果は次のようになります。

Hello from image     3 out of      4  total images
Hello from image     2 out of      4  total images
Hello from image     1 out of      4  total images
Hello from image     4 out of      4  total images

デフォルトでは、Co-Array Fortran アプリケーションがインテル® Fortran コンパイラーでコンパイルされると、ホスト・プラットフォームのプロセッサー・コア数と同じ数のイメージが作成されます。上記は、デュアル・クワッドコアで合計 8 コアを搭載するホストシステムで実行された例です。各イメージは個別にスポーンされたプロセスであり、非同期に実行します。

/Qcoarray オプションと /Qopenmp オプションを同時に使用しないでください。Co-Array Fortran 言語拡張と OpenMP* 言語拡張を混在して使用することはできません。

次へ: イメージ数を制御する