「VEの有無」が次の二つのどちらなのか判断できかねましたので二つの内容で回答します。
(a) VEに含まれるベクトル演算機構を使った場合、使わない場合での性能比較
(b) VEに含まれるベクトル演算機構を使った場合とVEをまったく使用せずSX-Aurora に搭載されたIntel CPU との性能比較
(a) VEに含まれるベクトル演算機構を使った場合、使わない場合での性能比較
-mno-vector を指定した場合、コンパイラの自動ベクトル化機能が無効になりユーザコードでベクトル命令を使用しないようにできます。
-mno-vector の指定あり/なしの性能を性能測定機能を使って比較してください。
以下は性能測定機能の一つのPROGINF機能を使った例です。
$ export VE_PROGINF=DETAIL
$ nc++ test.cpp -o vec.out (ベクトル演算機構使用)
$ ./vec.out
******** Program Information ********
Real Time (sec) : 11.329254
User Time (sec) : 11.323691
...
$ nc++ test.cpp -mno-vector -o novec.out (ベクトル演算機構使用せず)
$ ./novec.out
******** Program Information ********
Real Time (sec) : ...
...
上記の Real Time の値を比較してください。
PROGINF機能については以下の資料をご確認ください。
[Vector Engine向け C/C++コンパイラの使い方]
https://sxauroratsubasa.sakura.ne.jp/wiki/images/b/ba/ncc_how_to_use_rev2-jp.pdf
詳細は「PROGINF/FTRACE ユーザーズガイド」をご確認ください。
PROGINF/FTRACE ユーザーズガイド (G2AT03)
https://sxauroratsubasa.sakura.ne.jp/documents/sdk/pdfs/g2at03-PROGINF_FTRACE_User_Guide_ja.pdf
(b) VEに含まれるベクトル演算機構を使った場合とVEをまったく使用せず SX-Aurora に搭載されたIntel CPU との性能比較
g++ などのIntel CPU向けのコンパイラでコンパイルしたものと nc++ で
コンパイルしたものの性能を比較してください。性能値の取得には time
コマンドを使用してください。
例:
$ nc++ test.cpp
$ /opt/nec/ve/bin/time ./a.out
$ g++ test.cpp
$ time ./a.out
ここからは MPI(mpic++)ついての回答です。
MPIプログラムのコンパイル・リンク時(mpic++実行時)に、-vh オプションを
指定した場合、生成される実行形式ファイルは、VEを利用せず、Intel CPU で
動作するものとなります。一方、-vh 指定無しの場合は、VE上で動作する
実行形式ファイルを生成する違いがあります。
また、MPIプログラムを実行する際は、mpirunあるいはmpiexecコマンドを利用いただきますが、
この場合も同様に、-vh 付きでコンパイル・リンクしたプログラムの場合は-vhオプション
の指定が必要となります。
なお、MPIプログラムのコンパイル・リンク及びプログラム実行の際には事前にMPIセットアップスクリプト
を読み込む必要があります。以下、その手順になります。
まずは、ご利用のシステムにインストールされているNEC MPIのバージョンの確認をお願いします。
以下、NEC MPI Version 2.21.0 が /opt/nec/ve/mpi/2.21.0 にインストールされていると
仮定した手順となります。(2.21.0以外のバージョンであっても、/opt/nec/ve/mpi 配下に
インストールされますので、バージョンの部分を読み替えてください)
mpic++を実行する前に、ご利用中のログインシェル(sh系あるいはcsh系)に応じて、
以下の操作のいずれかを行ってください。この操作により、MPIプログラムのコンパイル
から実行までの環境設定が行われます。
source /opt/nec/ve/mpi/2.21.0/bin/necmpivars.sh
または
source /opt/nec/ve/mpi/2.21.0/bin/necmpivars.csh
詳細については下記資料の3.1節、3.2節をご参照ください。
NEC MPI ユーザガイド (G2AM01)
https://sxauroratsubasa.sakura.ne.jp/documents/mpi/pdfs/g2am01-NEC_MPI_User_Guide_ja.pdf
以上です。
Posted by NEC SDK team (forum administrator) on 16 December 2022 at 09:50. Edited by NEC SDK team (forum administrator) on 16 December 2022 at 09:56. |
|