MPIライブラリの調査と性能の計測

澤田 淳二, 廣安 知之, 三木 光範

ISDL Report   No. 20040613001

2004年 6月 2日

Abstract

MPI(Message Passing Interface)は, 分散メモリ環境において, メッセージパッシング形式の並列アプリケーションを作成するためのデファクトスタンダードなライブラリである. MPIはAPIの仕様を定めただけであるので, 実際の処理をどのように行うかによって, フリーのライブラリから商用のライブラリまで様々な実装が存在している. 代表的なフリーのライブラリとしては, MPICHやLAMがある. また, MPIにフォールトトレランスの機能を付加したライブラリも存在する. 本レポートでは, MPICH, LAM, フォールトトレランス機能を有するMPIライブラリについての調査を行った. 次に, MPICH, LAM, FT-MPIについて, 1対1通信と集団通信の性能計測を行った. その結果, 1対1通信ではメッセージサイズが小さい場合は性能に違いが見られるが, メッセージサイズが大きくなるにつれて性能差がなくなることがわかった. また, 集団通信ではLAMが最も性能がよいことがわかった.

1  はじめに

MPI(Message Passing Interface)[1]は, 分散メモリ環境において, メッセージパッシング形式の並列アプリケーションを作成するためのデファクトスタンダードなライブラリである. MPIのAPI(Application Programming Interface)仕様は, MPI Forum[2]によって定められている. メッセージパッシング形式の並列アプリケーションを作成するためのライブラリとしては, 他にPVM(Parallel Virtual Machine)があるが, MPIは第三者的な機関によりAPIが規定されているため, 移植性に優れているという特徴を有している.

MPIはあくまで仕様を定めただけであるので, 実際の処理をどのように行うかによって, フリーのライブラリから商用のライブラリまで様々な実装が存在している. 代表的なフリーのライブラリとしては, MPICH[3]やLAM[4]がある. また, MPIにフォールトトレランスの機能を付加したライブラリも複数存在する.

本レポートでは, まず, MPICH, LAMについて説明する. 次に, フォールトトレランス機能を有するMPIライブラリについて述べる. その後, MPICH, LAM, FT-MPIについて, 1対1通信と集団通信の性能計測を行う.

2  MPICH

アメリカのゴードン国立研究所が模範実装として開発し, 無償でソースコードを配布しているMPIライブラリである. 移植しやすさを重視した作りになっているので, 盛んに移植が行われ, 世界中のほとんどのベンダの並列計算機上で利用することができる.

MPICHでは, 各並列計算機に対する実装間でソースコードの多くを共有し, また, 新たな並列計算機上への移植・各並列計算機に特化したチューニングを容易にするためのアーキテクチャとして, ADI(Abstract Device Interface)という通信を抽象化したインターフェースを定義している. さらに, ADIはチャネルインターフェースと呼ばれるより原子的な関数から構成されることもある. 各並列計算機に対して, 専用のADIやチャネルインターフェースを用意することにより, 各並列計算機に最適な通信を行うことが可能となる.

現在, MPICHを新たに実装し直したMPICH2が開発中(執筆時点の最新バージョンは, 0.96p2であり, まだ, ベータリリースの段階)である. MPICHとMPICH2の主な違いは, 以下の点である.

3  LAM

ノートルダム大学の科学コンピュータ研究室が作成したフリーのMPIライブラリである. ライブラリだけでなく, いくつかのデバッキングとモニタリングツールも提供している.

LAMはMPICHと異なり, まず初めにデーモンプロセスを起動する必要がある. LAMとMPICHは, MPIプロセス間での通信チャネルの起こし方が異なっている. MPICHでは要求によりコネクションが形成されるのに対して, LAMでは初期状態において全てのネットワークがつながれる. そのためコネクションの立ち上がり時間において両者は若干の差がある.

従来まではLAMの6.5が利用されていたが, 2003年の7月に, LAM 7.0がリリースされた. LAM 7での大きな変更点は次の通りである.

4  MPIとフォールトトレランス

MPIの規格自体にもフォールトトレランスを考慮した事項が存在するが, それだけでは不十分なことがあるため, 様々なフォールトトレランス機能を持ったMPIの実装が開発されている. フォールトトレランスのアプローチは次のように分類される[5].

既存のフォールトトレランスを考慮したMPIの実装を分類すると, Table 1のようになる.

Table 1: フォールトトレランス機能を有したMPIの分類
アプローチ方法 実装
チェックポイント形式 自動的 CoCheck
アプリケーション制御 Starfish, CLIP
メッセージログ形式 MPICH-V, MPI/FT, MPI-FT, Ediga
アプリケーション通知形式 FT-MPI

今回はこの中で, FT-MPI[6]に注目する.

5  FT-MPI

University of Tennessee, KnoxvilleのInnovative Computing Laboratoryによって開発されているフォールトトレランス機能を有したMPIの実装である. FT-MPIは標準のMPI規格にフォールトトレランス機能を追加することでフォールトトレランスを実現している. 具体的な機能として, 次の機能が提供されている.

FT-MPIの機能を利用し, アプリケーションにフォールトトレランスを実装するためには, 既存のMPIプログラムを変更する必要がある.

6  性能評価

MPICH, LAM, FT-MPIの性能を比較する. 比較する項目として,

を比較する. 計測に利用した環境をTable 2に示す.

Table 2: 利用した計測環境
ノード数 24
CPU性能 600MHz × 24
メモリ容量 128MB × 24
OS Debian GNU/Linux 3.0
ネットワーク Fast Ethernet(100Mbps)
MPICH 1.2.4
MPICH2 0.96p2
LAM 6 6.5.6
LAM 7 7.0.4
FT-MPI 1.0.1

6.1  レイテンシの比較

1対1通信でのレイテンシをFig. 1に示す. なお, レイテンシの値としては, 4バイトのデータを100000回送信・受信するのに要した時間を計測し, 2で割ることにより, 1回あたりの送信に要する時間を計測した.

Figure 1: レイテンシの比較

Fig. 1より, LAMはレイテンシが小さく, MPICHはレイテンシが大きいことがわかる.

6.2  1対1通信でのバンド幅の比較

1対1通信でのバンド幅をFig. 2に示す. バンド幅の計測方法としては, 一定サイズのメッセージを指定回数分, 送信・受信し, 要した時間を計測した. なお, バンド幅の計算には, Equ. (1)を用いた.

バンド幅 = メッセージサイズ x 繰り返し数 x 2 / 実行時間     (1)

Figure 2: 1対1通信でのバンド幅の比較

Fig. 2より, どの実装でもメッセージサイズが大きくなるにつれ, ネットワークのバンド幅を有効に利用できるようになることがわかる.

6.3  集団通信でのバンド幅の比較

集団通信でのバンド幅をFig. 3に示す. バンド幅の計測方法としては, 一定サイズのメッセージを指定回数分, Gather通信で収集し, 要した時間を計測した. なお, バンド幅の計算には, Equ. (2)を用いた.

バンド幅 = メッセージサイズ x プロセス数 x 繰り返し数 / 実行時間     (2)

Figure 3: 集団通信でのバンド幅の比較

どの実装でも, プロセス数が増えるにつれて, バンド幅が低くなっていくことがわかる.

7  まとめ

本レポートでは, MPICH, LAM, フォールトトレランス機能を有するMPIライブラリについての調査を行った. 次に, MPICH, LAM, FT-MPIについて, 1対1通信と集団通信の性能計測を行った. その結果, 1対1通信ではメッセージサイズが小さい場合は性能に違いが見られるが, メッセージサイズが大きくなるにつれて性能差がなくなることがわかった. また, 集団通信ではLAMが最も性能がよいことがわかった.

References

[1]
MPI - The Message Passing Interface Standard. http://www-unix.mcs.anl.gov/mpi/

[2]
Message Passing Interface (MPI) Forum Home Page. http://www.mpi-forum.org/

[3]
MPICH-A Portable MPI Implementation. http://www-unix.mcs.anl.gov/mpi/mpich/

[4]
LAM / MPI. http://www.lam-mpi.org/

[5]
George Bosilca, Aurelien Bouteiller, Franck Cappello, Samir Djilali, Gilles Fedak, Cecile Germain, Thomas Herault, Pierre Lemarinier, Oleg Lodygensky, Frederic Magniette, Vincent Neri, Anton Selikhov. MPICH-V: Toward a Scalable Fault Tolerant MPI for Volatile Nodes. SuperComputing 2002, Baltimore USA, November 2002.

[6]
FT-MPI. http://icl.cs.utk.edu/ftmpi/index.html


Copyright (C) 2004 Junji Sawada, All rights reserved.
Copyright (C) 2004 Tomoyuki Hiroyasu, All rights reserved.
Copyright (C) 2004 Mitsunori Miki, All rights reserved.

No part of this document may be reproduced, copied, distributed,
transferred, modified, or transmitted, in any form or by any means,
without the prior written permission of the authors.
In no event shall the authors be liable for any damages caused in any way
out of the use of this document.




File translated from TEX by TTH, version 3.59.
On 1 Jun 2004, 13:00.

Back to Top