インテル® MKL 2017 デベロッパー・ガイド
インテル® MKL は、ハイブリッド・オフロード・モードでインテル® Xeon Phi™ コプロセッサーをサポートしています。
ハイブリッド・オフロード・モードは、異なる並列化手法の使用とコプロセッサーへの計算のオフロードを組み合わせます。このモードでホスト・プロセッサーは、物理コアの総数よりも少ないコアを MPI に使用し、OpenMP* スレッドまたは Windows® スレッドを使って、問題のチャンクをインテル® 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 バスのトラフィックが増加しますが、大きな問題では十分にメリットが得られます。