< 目次

インテル® MKL 2017 デベロッパー・ガイド

Intel® Optimized MP LINPACK Benchmark の概要

Intel® Optimized MP LINPACK Benchmark for Clusters (Intel® Optimized MP LINPACK Benchmark) は、テネシー大学ノックスビル校 (UTK) の Innovative Computing Laboratories (ICL) が提供しているハイパフォーマンス LINPACK (HPL) 2.1 (http://www.netlib.org/benchmark/hpl) をベースに変更、追加したものです。Intel® Optimized MP LINPACK Benchmark は、TOP500 (http://www.top500.org を参照) の実行に使用することができます。ベンチマークを使用するには、HPL の使用法についてよく理解している必要があります。Intel® Optimized MP LINPACK Benchmark は、HPL をより便利に使用できるように、そしてパフォーマンスを向上するインテル® メッセージ・パッシング・インターフェイス (MPI) 設定を使用できるように、追加の拡張が行われています。.\benchmarks\mp_linpack ディレクトリーには、長時間の実行につながる検索時間を最小限に抑える手法が加えられています。

Intel® Optimized MP LINPACK Benchmark は、HPL コードを使用する Massively Parallel (MP) LINPACK (LINPACK の超並列対応版) ベンチマークの実装です。このベンチマークは、real*8 精度のランダムで稠密な連立線形方程式 (Ax=b) を解き、因数分解して解くためにかかった時間を測定し、時間をパフォーマンス比率に変換して結果の精度をテストします。使用する MPI 実装の制約を満たす任意のサイズの連立方程式を解くように実装を一般化できるため、1000 を超える方程式 (N) を解くことができます。ベンチマークは、正確な結果が得られるように、適切な乱数生成手法と完全な行ピボット演算を使用しています。

このベンチマークは、LINPACK 100 のパフォーマンスのレポートとして使用しないでください。このベンチマークと以下のものを混同しないでください。

インテルでは、標準の HPL ベンチマークよりも簡単にインテル® プロセッサー・ベースのシステムで高い LINPACK ベンチマーク結果が得られる LINPACK ベンチマークの最適化バージョンを提供しています。クラスターのベンチマークには、Intel® Optimized MP LINPACK Benchmark を使用してください。事前ビルドバイナリーを使用するには、クラスターにインテル® MPI ライブラリーをインストールする必要があります。

Intel® Optimized MP LINPACK Benchmark の事前ビルドバイナリーは、インテル® MPI ライブラリーの対称モデルでは実行できません。詳細は、記事 (https://software.intel.com/en-us/articles/using-the-intel-mpi-library-on-intel-xeon-phi-coprocessor-systems (英語)) を参照してください。

インテル® MPI ライブラリーのランタイムバージョン (無料) は、http://www.intel.com/software/products/ からダウンロードできます。

事前ビルドバイナリーはハイブリッド・オフロード・バイナリーです。システムにインテル® Xeon Phi™ コプロセッサーが搭載されていない場合でも動作します。

このパッケージには、テネシー大学ノックスビル校の Innovative Computing Laboratories (ICL) で開発されたソフトウェアが含まれていますが、これはテネシー大学や ICL が本製品を推奨あるいは販促していることを意味するわけではありません。HPL 2.1 は特定の条件の下で再配布することができますが、このパッケージはインテル® MKL の使用許諾契約書に基づきます。

インテル® MKL では、ハイブリッド・ビルドと呼ばれる新しい機能が Intel® Optimized MP LINPACK Benchmark に追加されました。以前のバージョンも引き続きサポートしています。「ハイブリッド」とは、OpenMP*/MPI を組み合わせた並列処理を活用するために追加された特別な最適化のことを指します。

ノードあたり 1 つの MPI プロセスを使用して、OpenMP* によるさらに高度な並列処理を行うには、ハイブリッド・ビルドを使用してください。一般に、ハイブリッド・ビルドはコアあたりの MPI プロセスの数が 1 未満の場合に適しています。MPI でクロスノードの並列処理を行い、コアあたり 1 つの MPI プロセスを使う場合は、非ハイブリッド・ビルドを使用してください。

特定の事前ビルド・ハイブリッド・ライブラリーに加えて、インテル® MKL では、OpenMP* の最適化を活用するインテル® MPI 用の事前ビルド・ハイブリッド・ライブラリーをいくつか提供します。

最新のインテル® Xeon® プロセッサーから 0 ~ 8 つのインテル® Xeon Phi™ コプロセッサーに計算をオフロードできるように、インテル® MKL はハイブリッド・オフロード・バイナリーを提供しています。ハイブリッド・オフロード・バイナリーにはインテル® Core™ プロセッサー向けの最新の最適化が含まれており、システムにインテル® Xeon Phi™ コプロセッサーが搭載されていない場合でも、このバイナリーを使用することを推奨します。ハイブリッド・オフロード・バイナリーは、混在した並列処理にシステム固有のスレッド API を使用します。

インテル® MPI 以外の MPI バージョンを使用する場合は、提供されている MP LINPACK ソースコードを使用してください。ソースコードからハイブリッド・モードで利用できる非ハイブリッド・バージョンをビルドすることもできますが、その場合、ハイブリッド・バージョンに追加される最適化の一部は含まれません。

提供されるソース・コード・メイクファイルのデフォルトは、非ハイブリッド・ビルドです。非ハイブリッド・コードをハイブリッド・モードで利用するには、インテル® MKL BLAS のスレッド化バージョンを使用して、スレッドセーフな MPI とリンクし (例えば、-mt_mpi オプションでインテル® MPI ライブラリーをリンク)、MPI_init_thread() 関数を呼び出して、MPI をスレッドセーフにします。

最適化に関する注意事項

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

注意事項の改訂 #20110804