< 目次

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

Intel® Optimized HPCG 入門

ベンチマークを開始するには、以下の操作を行います。

  1. クラスター・ファイル・システムでは、すべてのノードがアクセスできるディレクトリーに Intel® Optimized HPCG パッケージを展開します。パッケージに含まれている readme.txt ファイルに示されているライセンスを承諾します。

  2. ディレクトリーを hpcg/bin に変更します。

  3. システムに最も適したベンチマークの事前ビルドバージョンを使用します。または、QUICKSTART の説明にしたがって、MPI 実装向けのベンチマークのバージョンをビルドします。その際、インテル® Xeon Phi™ コプロセッサーのネイティブ実行およびシンメトリック実行にはインテル® MPI が必要であることに注意してください。インテル® Xeon Phi™ コプロセッサーのオフロードバージョンのみ、ほかの MPI 実装を使用してビルドすることができます。

  4. 以下の項目を確認します。

    • インテル® C/C++ コンパイラーおよび MPI ランタイム・ライブラリーが LD_LIBRARY_PATH 環境変数から利用できる。
    • インテル® Xeon Phi™ コプロセッサーでベンチマークを実行する場合は、インテル® メニーコア・プラットフォーム・ソフトウェア・スタック (インテル® MPSS) ランタイム・ライブラリーが MIC_LD_LIBRARY_PATH 環境変数から利用できる。
    • ベンチマークのオフロードバージョンを実行する場合は、インテル® Parallel Studio XE Composer Edition またはその再配布可能なライブラリー・パッケージがインストールされている (詳細は、https://software.intel.com/en-us/articles/redistributables-for-intel-parallel-studio-xe-2015-composer-edition-for-linux を参照してください)。インテル® Parallel Studio XE Composer Edition の対応バージョンは、「インテル® MKL 動作環境」 (英語) を参照してください。

  5. 下記で説明しているように、選択したベンチマークのバージョンを実行します。
    • インテル® AVX 向けに最適化されたバージョンおよびインテル® AVX2 向けに最適化されたバージョンは、ソケットごとに 1 つのプロセス、コアごとに 1 つの OpenMP* スレッドを実行し、ハイパースレッドをスキップしたときに最高のパフォーマンスが得られます。アフィニティー を KMP_AFFINITY=granularity=fine,compact,1,0 として設定します。例えば、ノードごとに 2 つのインテル® Xeon® プロセッサー E5-2697 v3 を搭載した 128 ノードのクラスターの場合、次のように実行します。

      #> I_MPI_ADJUST_ALLREDUCE=5 mpiexec.hydra –machinefile .machinefile -n 
      512 -perhost 2 env OMP_NUM_THREADS=14 
      KMP_AFFINITY=granularity=fine,compact,1,0 bin/xhpcg_avx2 --n=168
      
    • インテル® Xeon Phi™ コプロセッサーのオフロードモード向けに最適化されたバージョンは、コプロセッサーごとに 1 つの MPI プロセス、各インテル® Xeon Phi™ コプロセッサー・コアで 4 つのスレッドを実行し、1 つのコアを残したときに最高のパフォーマンスが得られます。例えば、ノードごとに 2 つのインテル® Xeon Phi™ コプロセッサー 7120D を搭載した 128 ノードのクラスターの場合、次のように実行します。

      #> I_MPI_ADJUST_ALLREDUCE=5 mpiexec.hydra –machinefile .machinefile -n 
      256 –perhost 2 env –u OMP_NUM_THREADS –u KMP_AFFINITY 
      MIC_OMP_NUM_THREADS=240 
      MIC_LD_LIBRARY_PATH=./bin/lib/mic:$MIC_LD_LIBRARY_PATH 
      LD_LIBRARY_PATH=./bin/lib/mic:./bin/lib/intel64:$LD_LIBRARY_PATH 
      ./bin/xhpcg_offload --n=168
      
    • シンメトリック・モードでは、プロセスのパフォーマンスのバランスを考えてホストごとおよびコプロセッサーごとの MPI プロセス数を選択します。例えば、ノードごとに 1 つのインテル® Xeon Phi™ コプロセッサー 7120D を搭載し、ホストごとに 2 つの MPI ランク、プロセッサーごとに 2 つの MPI ランクの 128 ノードのクラスターの場合、次のように実行します。

      #> I_MPI_ADJUST_ALLREDUCE=5 mpiexec.hydra –machinefile .machinefile -n 
      256 -perhost 2 env OMP_NUM_THREADS=14 
      KMP_AFFINITY=granularity=fine,compact,1,0 ./bin/xhpcg_avx2 --n=144 : -n 256 
      –perhost 2 env OMP_NUM_THREADS=120 
      KMP_AFFINITY=compact ./bin/xhpcg_mic --n=144
      

      シンメトリック実行の場合、.machinefile にインテル® Xeon® プロセッサーのホストのリスト、インテル® Xeon Phi™ コプロセッサーのリストを順に含めます。

  6. ベンチマークが実行を完了したら (通常は数分かかります)、現在のディレクトリーにある YAML ファイルを調べて結果を確認します。ベンチマーク・テストを行ったシステムの性能評価は、ファイルの最後のセクションに記述されています。

    HPCG の結果は GFLOPS [GFLOP/s] 評価です。

最適化に関する注意事項

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

注意事項の改訂 #20110804