インテル® MKL 2017 デベロッパー・ガイド
インテル® MKL は、次のモードでインテル® Xeon Phi™ コプロセッサーをサポートしています。
ネイティブ
ハイブリッド・オフロード
ネイティブモードの詳細は、「インテル® Xeon Phi™ コプロセッサーでのインテル® MKL の使用」を参照してください。
ハイブリッド・オフロード・モードは、異なる並列化手法の使用とコプロセッサーへの計算のオフロードを組み合わせます。このモードでホスト・プロセッサーは、物理コアの総数よりも少ないコアを MPI に使用し、OpenMP* スレッドまたは POSIX* スレッドを使って、問題のチャンクをインテル® Xeon Phi™ コプロセッサーにオフロードします。
インテル® Xeon Phi™ コプロセッサーで MPI プロセスを直接実行するには、ネイティブモードを利用する必要があります。MPI プロセスをインテル® Xeon Phi™ コプロセッサーでのみ実行する場合、コプロセッサーはオフロードモードで使用されます。
多くの場合、ホストのインテル® Xeon® プロセッサーのほうが、インテル® Xeon Phi™ コプロセッサーよりもメモリーが大きくなります。このため、MPI プロセスは、コプロセッサーで実行するよりもホスト・プロセッサーで実行するほうが、より多くのメモリーを利用できます。
HPL コードはもともとホモジニアスです。つまり、各 MPI プロセスは、同様の CPU とメモリー制限の環境下で実行する必要があります。なんらかの理由で、あるノードの処理能力がほかのノードの 2 倍である場合、従来そのノードで 2 つの MPI プロセスを実行することでのみバランスをとることができました。
現在は、インテル® MKL で、ヘテロジニアスな Intel® Optimized MP LINPACK Benchmark をサポートしています。ヘテロジニアスのサポートとは、追加の作業に対応できる十分なメモリーがノードにある場合、各ノードのパフォーマンス要件に合わせたデータ配置をインテル® MKL がサポートすることを意味します。Intel® Optimized MP LINPACK Benchmark は、次のヘテロジニアスをサポートしています。
ノード内ヘテロジニアス。
1 つのノードに異なる計算能力の異なるプロセシング・ユニットが含まれます。作業をインテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサーで共有するノード内ヘテロジニアスを使うには、ハイブリッド・オフロード手法を使用します。
ノード間ヘテロジニアス。
ノード間にわたるヘテロジニアスです。ノード間ヘテロジニアスを使用するためのインテル® MKL の構成方法については、「ヘテロジニアスな Intel® Optimized MP LINPACK Benchmark」を参照してください。
パフォーマンスを最大限に引き出すには、ホスト・プロセッサーのメモリーを増やし (コプロセッサーあたり 64GB が理想)、大きな問題と大きなブロックサイズを実行します。作業の一部はコプロセッサーにオフロードします。この方法では PCIe バスのトラフィックが増加しますが、大きな問題では十分にメリットが得られます。
ホスト・プロセッサーのメモリーが小さい場合、オフロードする代わりに、ネイティブに実行したほうが良いパフォーマンスが得られる可能性があります。
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |