インテル® MKL 2018 デベロッパー・ガイド
HPL.dat の最も重要なパラメーターは、P、Q、NB および N です。以下のように指定します。
P および Q - プロセッサー・グリッドの行と列の数。
P*Q は、HPL が使用する MPI プロセスの数です。
P≤Q。
NB - データ配置のブロックサイズ。
次の表は、各種インテル® プロセッサーに応じた NB の推奨値を示します。
プロセッサー |
NB |
---|---|
インテル® Xeon® プロセッサー X56*/E56*/E7-*/E7*/X7* (開発コード名 Nehalem または Westmere) |
256 |
インテル® Xeon® プロセッサー E26*/E26* v2 (開発コード名 Sandy Bridge または Ivy Bridge) |
256 |
インテル® Xeon® プロセッサー E26* v3/E26* v4 (開発コード名 Haswell または Broadwell) |
192 |
インテル® Core™ i3/i5/i7-6* プロセッサー (開発コード名 Skylake Client) | 192 |
インテル® Xeon Phi™ プロセッサー 72* (開発コード名 Knights Landing) |
336 |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 命令対応インテル® Xeon® プロセッサー (開発コード名 Skylake Server) |
384 |
インテル® Xeon Phi™ コプロセッサーへオフロードする場合の NB の推奨値は、「インテル® Xeon Phi™ コプロセッサーへのオフロード」を参照してください。
N - 問題サイズ:
ホモジニアス実行の場合、NB*LCM(P,Q) で分割可能な N を選択します (LCM は最小公倍数)。
ヘテロジニアス実行での N.の選択については、「インテル® Distribution for LINPACK Benchmark のヘテロジニアス・サポート」を参照してください。
N を大きくすると通常パフォーマンスが向上しますが、N のサイズはメモリーにより制限されます。一般に、行列の格納に必要なメモリー量は、次のように計算できます (各種バッファーは含みません): 8*N*N/(P*Q) バイト。N は問題サイズ、P と Q は HPL.dat のプロセスグリッドです。一般的な経験則として、メモリーの 80% を使用する問題サイズを選択します。インテル® Xeon Phi™ コプロセッサーへオフロードする場合は、オフロードに必要な追加のバッファーを残すため、メモリーの 70% を使用する問題サイズを選択すると良いでしょう。N > > NB になるように、N と NB を選択します。
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |