インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス

概要: ヘテロジニアス・プログラミング

このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをターゲットとする場合にのみ適用されます。

ヘテロジニアス・プログラミングについて

コンパイラーには、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーで実行するセクションをオフロードできる、並列プログラムを単純に記述する言語拡張が含まれています。

実行はホスト CPU で開始し、ユーザー定義コードに基づいて、セクションがコプロセッサーにオフロードされます。

ヘテロジニアス・プログラミングは、従来の CPU プログラミングと異なる 2 つの点に対処する必要があります。

プログラミング・モデル

コンパイラーは、プリフィクス OFFLOAD_ のディレクティブを使用して共有システムメモリーの不足に対処します。

このモデルは、ビット単位でコピー可能なスカラー、配列、構造体のような、フラットなデータ構造を扱う場合に適しています。

このモデルのデータはオフロードコードの前後で CPU とコプロセッサー間でコピーされます。転送のために選択されるデータは、(オフロード構造内で字句的に参照されるために) 暗黙で転送される変数と、ディレクティブの節で明示的にリストされる変数の組み合わせです。

このモデルで、構造がコプロセッサーで実行するように指定しても、その動作は保証されません。インテル® MIC アーキテクチャー・ベースのサブシステムが存在し、そのサブシステムをオフロードに利用できる場合にのみ、オフロードは成功します。オフロードに失敗すると、プログラムはエラーメッセージを出力して終了します。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

関連情報