LSDYNA 971R6 Linux64 MPP版 « ACS NEWS

LSDYNA 971R6 Linux64 MPP版

2012 年 2 月 20 日 by yo yamgatta

前回のWindows版に続いて、mppdyna Linux64bit版を試してみました。

Linux64用は、MPIとCPUの組み合わせで、以下のモジュールが用意
されています。

Platform MPI  :  MPP( Intel, PGI ),  Hybrid (Intel, PGI)
Intel MPI : MPP(Intel),  Hybrid (Intel)
MPICH126 : MPP (Intel, PGI )
OpenMPI : MPP(Intel, PGI),  Hybrid(Intel)
SGI MPT : MPP(Intel)

この組み合わせに加えて、Linuxディストリビューションが加わります。
Intelコンパイラ版:RedHat 5.4 ( SGIのみ SUSE10.1 )
PGIコンパイラ版:SUSE 10.2

Hybrid版は、MPP+SMPの混在したようなモジュールで、「128CPU以上で性能が出る」
と言われています。他に利点として、「CPU数の組み合わせを変えても結果は変わらない」
とあります。私はそんなに沢山CPUを持っていないので今回は動作確認のみとします。

今回使用するハードウエア(サイコム製)のスペックです。
本来は、Windows版と同じスペックのハードがあればいいのですが、現在の
手持ちマシンはこれだけです。
何故AMDのCPUかというと、買った当時安かったから、です。
OSなしで購入、SUSE11.2は自分でインストールしました。
何故SUSEかというと、これも安かった(無料)だからです。
CPU速度は前回のCoreI7には全く歯がたちません。

 

今回使用するマシンが、AMDのCPU, OSはSUSE、Hybrid版も
試してみたい、という理由で Platform MPI PGIコンパイラ版を
試すことにしました。

1、必要なファイル (弊社サイトからもダウンロードできます)

platform_mpi-8.01.01.00-20110421r.x86_64.rpm - Platform MPI
mpp971_*_r6.0.0_71488_amd64_pgi_suse102_platformmpi.tar.gz - MPP版
mpp971_d_r6.0.0_71488_amd64_pgi_suse102_platformmpi_hybrid.tar.gz – HYBRID版

2、PlatForm MPIのインストール

platform_mpi-8.01.01.00-20110421r.x86_64.rpmを任意の場所において、
root権限で# rpm -ivh ファイル名

あっという間に終了します。ここにインストールされます。
/opt/platform_mpi

(以前インストールしたMPIが残ってます。使用するのはplatform_mpiのみ)
rootを抜けて、自分のパス変数に /opt/platform_mpi/bin を追加します。

3. MPPDYNAのインストール

モジュールのファイルを解凍、展開するのみです。
mppdyna本体と、l2aモジュールが含まれます。
これを、パスの通った場所でおけばいいのですが、mppdynaのファイル名が
あまりに長く、日本人にとって打ち込みにくいので、適当に短い名前への
シンボリックリンクを張っておくといいでしょう。

例) 
% ln -s mpp971_*_r6.0.0_71488_amd64_pgi_suse102_platformmpi  mpp971

4. テストデータ

Win64 MPP版と同じです。
とりあえず、動作確認してみましょう。
% cd テスト場所
% mpirun -np 6 mpp971 i=neon.k p=neon.p memory=200m jobid=test

こんな感じで、実行が始まればOKです。
ここまで、ノートラブル&とってもイージーに来ました。
MPICHのソースからのビルドなどやった頃に比べたら天国です。
終了までの経過時間:1926秒

次にHybrid版もテストしてみます。

% mpirun -np 6 mpp971h ncpu=-1 i=neon.k p=neon.p memory=200m jobid=test

動かない!!!  HYBRID版のテストができない!!!
計画が狂ってしまった。
そもそも、何故AMDのマシン用にPGIコンパイラ版があるかというと、
「Intelコンパイラ版で作ったモジュールは、AMDを見つけるとわざと遅くなる」

などのような噂があったためので、逆にPGIコンパイラは、AMDで早く動く
モジュールになる(みたい)なので、それぞれ別個に作成していると
聞いてました。

でも動かないのは困る。で、よーく考えると Linux64で Intel – AMDは
バイナリ互換のはず。(専用に作るほうが難しいと思う)
では、と、Intel版 Platform Hybrid版を入れて試したら、大成功!!!

しかも、MPP版で終了までの経過時間:1822秒

あれ??? AMDのCPUなのに、Intel版の方が早い???
(CPU数を変えて試したら、PGI版が早いこともありました)
で、今回は以下のモジュールに変更しました。

mpp971_*_r6.0.0_71488_intel64_intel_rhel54_platformmpi.tar.gz - MPP版
mpp971_*_r6.0.0_71488_intel64_intel_rhel54_platformmpi_hybrid.tar.gz – Hybrid版

5. Linux版 MPPDYNA実行方法

今回は、使用マシン1台しかないので次の方法で実行しました。
% mpirun -np CPU数 mpp971 <引数・・・入力データファイル名等>

Windows版と同じく、ホスト名を記載したファイルを作ってもOKです。
% mpirun -hostfile myhst mpp971
< Myhost >
host1:6
host2:6  
合計 12CPU

ハイブリッド版は、SMPと同様、NCPUパラメータも指定します。
% mpirun -np 3 mpp971h ncpu=-2 < オプション >
これで実行すると、3*2=6CPUを使用することになります。

6. ベンチマーク

テスト環境:AMD Phenom X6 3.2GHz, 16GB-RAM, SUSE 11.2 X 1台
SMP 1 CPUでの結果を 1.0としています。

LinuxでもPlatform MPIのインストール、設定は簡単でした。
他のMPIを使用したければ、パス設定変更するのみです。

Hybrid版は、全てMAX6CPUで試しましたが、MPP版を超えるにはCPU
数不足でした。
従来HPMPIを使っていたユーザには、PlatForm MPIお勧めです。

コメントをどうぞ

*