インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

Co-Array の使用

Co-Array は Fortran 2008 標準のデータ共有概念で、1 つのプログラムの複数のコピーを使用して並列処理を可能にします。それぞれのコピーはイメージと呼ばれ、通常のローカル変数に加えて、Co-Array または共通変数 (covariable) と呼ばれる共有変数を持ちます。共通変数は配列またはスカラーのいずれかで、プログラムのすべてのイメージで共有されます。この PGAS (Partitioned Global Address Space) モデルでは、各イメージが共通変数のそれぞれの部分にローカル変数としてアクセスすることができ、また角括弧で囲まれた共通インデックス (coindex) を使用してほかのイメージの部分にもアクセスすることができます。

インテル® Fortran は、マルチコアまたはマルチプロセッサー・システムで共有メモリーを使用して実行する Co-Array プログラムをサポートします。オプションのラインセンスを使用することで、分散メモリー型の Linux* または Windows* クラスターでも Co-Array プログラムを実行することができます。詳細は、製品のシステム要件を参照してください。

Co-Array は、OS X* システムでは利用できません。

Co-Array を使用してプログラムを作成する方法については、Fortran 2008 言語や ISO Fortran 2008 標準に関する書籍を参照してください。

Co-Array 構文の使用

Co-Array では、次のような追加の構文が必要になります。

ATOMIC_DEFINE と ATOMIC_REF は、このバージョンのインテル® Fortran ではサポートされていません。

Co-Array コンパイラー・オプションの使用

/Qcoarray (Windows*) または -coarray (Linux*) コンパイラー・オプションを使用してコンパイラーにより Co-Array 構文が認識されるようにする必要があります。このコンパイラー・オプションを使用しないと、Co-Array の構文や機能を使用するプログラムではコンパイル時にエラーが発生します。

/Qcoarrays:shared (Windows*) または -coarrays=shared (Linux*) を使用すると、インテル® メッセージ・パッシング・インターフェース (MPI) の並列化がシングルノード環境 (共有メモリー型のマルチコアまたはマルチプロセッサー環境) で実行されます。 /Qcoarrays:distributed (Windows*) または -coarrays=distributed (Linux*) を使用するにはインテル® クラスター・ツールキットのライセンス必要で、このオプションを使用するとインテル® MPI ライブラリーの並列化がマルチコア環境 (分散メモリー型のマルチ CPU 環境) で実行されます。 引数なしで /Qcoarrays (Windows*) または -coarrays (Linux*) を使用することは、シングルノード (共有メモリー) で実行するのと同じです。

Co-Array を含むプログラムを実行するのに特別な手順は必要ありません。単に実行ファイルを実行するだけです。Co-Array ではインテル® MPI ライブラリーの並列実装が使用されます。コンパイラーをインストールすると、共有メモリーで実行するのに必要なインテル® MPI ランタイム・ライブラリーが自動でインストールされます。同様に、インテル® クラスター・ツールキットをインストールすると、分散メモリーで実行するのに必要なインテル® MPI ライブラリーのランタイム・ライブラリーが自動でインストールされます。その他の MPI 実装や OpenMP* との Co-Array アプリケーションの使用はサポートされていません。

デフォルトでは、作成されるイメージの数は現在のシステムの実行ユニットの数と同じです。ifort コマンドラインでメインプログラムをコンパイルする際に、/Qcoarray-num-images:n (Windows*) または-coarray-num-images=n (Linux*) を使用してこの値を変更できます。また、実行時に環境変数 FOR_COARRAY_NUM_IMAGES でイメージ数を指定することもできます。

Co-Array 環境でインテル® MPI ライブラリーの機能を活用するには、"mpiexec -config filename" を filename ファイルに追加して、/Qcoarray-config-file:filename (Windows*) または -coarray-config-file=filename (Linux*) とともにインテル® MPI ライブラリーに渡します。

ほとんどの場合、config-file オプションを使用する必要はありません。config-file オプションの使用は、環境で必要ないくつかの MPI 機能を呼び出す必要がある場合など、限られたケースにおいてのみ適切です。

MPI 設定ファイルを使用する際の規則は次のとおりです。

Windows* の例:

Linux* の例:

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804

関連情報


このヘルプトピックについてのフィードバックを送信