SofTek Systems, Inc Cluster Information Directory by SofTek Systems, Inc
Tux
Recommend
pallas VAMPIR/VAMPIRtrace
pallas VAMPIR/VAMPIRtrcae
MPI プログラムの性能解析ツール
Etnus TotalView
Etnus TotalView
マルチプロセス対応デバッガ

Special Issues
カテゴリ別検索
アナウンスメント
PCクラスタ一般
Linux
ハードウェア
ソフトウェア
性能・ベンチマーク
PCクラスタ利用技術
PCクラスタ応用技術
ソフテック技術資料

Tips
カテゴリ別検索
ハードウェア全般
Linux OS 全般
システム管理技術
ネットワーク・通信
ミドルウェア・ツール
性能・ベンチマーク
最適化・並列化技術
応用事例
並列アプリケーション

SofTek Top Page > CID Top Page > Tips : ミドルウェア


MPICH を SMP マシンで使う(2)
2001 年 9 月 2 日

 共有メモリ用にコンフィグレーションした MPICH の性能はどれくらいなのか?IA-32 PC は メモリバンド幅が小さいため、MPI プログラムを SMP マシン上で実行するのはやや厳しい環境である。

 ここでは Pentium III 800MHz の 2 SMP マシンで性能測定を行った。マシン仕様は以下の通り。

測定環境
CPUPentium III 800MHz(Coppermine)2SMP
メモリ128MB
ネットワークカードIntel Corporation 82557 [Ethernet Pro 100] (rev 08)
LinuxLASER5 Linux 6.4 / Kernel 2.2.16-22LL6smp
MPICHVersion 1.2.1 + patch.all
gccversion egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

 MPICH を 共有メモリを使用するようにコンフィグレーションし、簡単ではあるが、pingpong プログラムで性能を評価してみる。なお、pingpong プログラムとは 2 ノード間で通信性能を計測するときによく使用されるプログラムである。このプログラムは、以下の処理を行う。

  1. ノード 0 がノード 1 にデータを送信する。
  2. ノード 1 は受信後、直ちにノード 1 へ返信する。
  3. ノード 0 がデータを受信する。

 ノード 0 で 1 から 3 までに要した時間を計測する。この時間を‘round-trip time’、round-trip time を 2 で割った値を‘one-way transit time’と定義する。one-way transit time が小さいほど高速にメッセージ通信が行える。

 MPI で記述された pingpong プログラムを上記環境で実行した測定結果を示す。なお、MPI ライブラリはソケット用にコンフィグレーションした MPICH と共有メモリ用にコンフィグレーションした MPICH をそれぞれ使用した。

pingpong プログラムによるソケットと共有メモリの one-way transit time

 今回のテストでは 40KB までの転送を行ったが、全域において 共有メモリ用にコンフィグレーションした MPICH が高速化されていることが分かる。参考までに 100Base/TX で接続されたノード間で pingpong プログラムを実行した場合、メッセージ長 1KB 時の one-way transit time は 255us である。

 pingpong プログラムから通信性能が向上したことが分かるが、実際には IA-32 SMP システムでは実アプリの性能向上はあまり期待できない。メモリバンド幅が小さいことと、メモリアクセス機構が貧弱(Alpha ワークステーションなどと比較して)であるからである。

(補足)グラフからメッセージ長が 16KB を超えると性能に変化があることが分かる。これは MPICH がメッセージ通信に使用するプロトコルを切り替えているためである。デフォルトの設定では 16KB までがショートメッセージ用プロトコル、それを超えるとロングメッセージ用プロトコルに切り替わる。このしきい値も configure コマンドで変更することができるので、ネットワークの特性に合わせて調整するといいだろう。



(C) SofTek Systems, Inc. All rights reserved.

Friday, 17-May-2002 16:24:49 JST