SMPI - SMP extention on MPI

2004-04-20 : SMPI 0.1.1 is out!
2003-06-09 : SMPI 0.1 is out!

ダウンロード使い方性能

SMPIって何?

SMPIはMPI通信ライブラリ用のSMP向けの拡張です。集団通信関数における各ノード の通信に、あらかじめ取得したSMPクラスタのノード構成に基づいたスケジュー リングを施すことで、通信効率の向上させることができます。 中〜大規模構成のSMPクラスタ巨大なデータの集団通信が必要な場合に特に有効であると考えられます。

現在、C言語で利用可能なSMPIの実装をぼちぼち進めています。

特徴・性能

SMPIの通信性能について、既存のMPI実装(MPICH)との比較を行っています。

実装状況

MPI 関数名SMPI 関数名実装状況
MPI_AlltoallSMPI_Alltoalldone! (only 2CPU SMP)
MPI_BcastSMPI_Bcastdone!
MPI_AllgatherSMPI_Allgathernot yet
MPI_GatherSMPI_Gathernot yet
MPI_ReduceSMPI_Reducenot yet
MPI_ScatterSMPI_Scatternot yet

これらの関数に加えて、SMPクラスタのノード構成を把握するのに必要な関数を 用意しています。

SMPI のダウンロード

実装が全然進んでいませんが、LGPLライセンス下でとりあえず公開してみます。 コンパイルには MPICH と glib-1.2 が必要です。

SMPI 0.1.1
Source[tar.gz] smpi-0.1.1.tar.gz
SMPI 0.1
Source[tar.gz] smpi-0.1.tar.gz

インストール方法などは使い方 をご覧下さい。

現時点での利用上の制約

  1. 対応言語はC言語のみです
  2. 現在の実装では、SMPI_Alltoall は2CPU構成でないと動きません(涙

また、お使いの用途・環境によっては性能向上が見られない可能性もあることをご了承ください。

参考文献

  1. 稲垣 良一: "SMPクラスタの通信コスト削減による並列FFTの高速化", 2002年度 卒業論文, 早稲田大学理工学部, 2003.
  2. 稲垣 良一, 上田 和紀: "SMPクラスタにおける効率的なMPI集団通信関数の実装", 先進的計算基盤システムシンポジウム SACSIS2003, pp.171-pp.172, 2003. [ppt]


<< 戻る

最終更新日 2004/4/20 Ryoichi INAGAKI<inagaki@ueda.info.waseda.ac.jp>