PC-UNIX上でMPI(Message-Passing Interface)を使う方法について:1

(2001/5/26 改訂)


とある研究室において,パソコン上でMPIという並列計算用の通信ライブラリを使いたいという学生がいたのですが(ぼくも学生ですけど),まず,ライブラリのインストール自体がなかなかうまくいかないようでした。そこで,PC-UNIX上でのMPICHのインストールおよび実行方法を紹介したいと思います。因みに,PCが1台しかありません,という人もできますので(1台1CPUでは並列計算にならんが),やってみましょう(ぼくも現在1台しかありません>その後,2台になりました>さらにその後,3台になりました)。ただし,失敗して何が起こっても,文句を言わないでください。

Linuxでのインストール

しばらくして,Redhat6.1でとりあえずインストールが出来たという報告を受けました。ぼくもTurboLinux6.0で試したところ,意外にもあっさりと一発でうまくいったので,その模様を以下にお伝えします。

<ライブラリMPICHの入手>

検索エンジンで探せば,すぐにMPICHのサイトが見つかります。そこのFTPサーバからmpich.tar.gzを取ってきます(10MBくらい)。http://www.lfbs.rwth-aachen.de/~joachim/MP-MPICH.htmlやhttp://www-unix.mcs.anl.gov/mpi/mpich/に行けば分かると思いますが,ftp://ftp.mcs.anl.gov/pub/mpi/からダイレクトに取ってきてもO.Kでしょう。現時点(2000/11/30)での最新バージョンは1.2.1でした。

<準備(ひまつぶし)>

では,ダウンロードしている間にでも,以下のことを進めましょう。
PATHに/usr/local/mpich/binを加えておきます。bashであれば,.bash_profileの適切な位置に

PATH=$PATH:/usr/local/mpich/bin

などと書いておけば良いです。その後,

% source ~/.bash_profile

として,変更を反映させます(あるいは,マシンを再起動しても良いのですが,今はファイルのダウンロード中です)。これしかやることがないので,あとはMPIを使ったプログラムを書くか,寝るかして,ダウンロードの完了を待ちます。

<インストール>

では,ダウンロードが終わったと仮定しましょう(料理番組のようだ)。
まず,取ってきたファイルを適当なディレクトリで展開します。

% cd ~/temp
% tar -xzvf mpich.tar.gz

これにより,mpich-1.2.1というディレクトリが出来るので,ここへ移動します。

% cd mpich-1.2.1

次にconfigureをします。このとき,インストール先(-prefix)とFortranコンパイラ(-fc)を指定しておきます。

% ./configure -prefix=/usr/local/mpich-1.2.1 -fc=g77

また,rshではなくsshを使用している場合は,リモートシェル(-rsh)を指定して

% ./configure -prefix=/usr/local/mpich-1.2.1 -rsh=ssh -fc=g77

などとします。そして,これが終わったら

% make

とします。結構長い(平均10分くらいでしょうか)ですが,makeが終わったらrootになって

# make install

これで,文句を言われずに終了すれば,インストール成功です。ついでに,シンボリックリンクを張っておきましょう。

# cd /usr/local
# ln -s mpich-1.2.1 mpich

インストール作業は以上です。

<本当にうまくインストールされたのか?>

では,テスト用プログラムのある場所へ移動します。作業は一般ユーザで行います。

% cd ~/temp/mpich-1.2.1/examples/basic

ここに,hello++.ccやcpi.cなどテスト用と思われるファイルがいくつかあるので,試しにやってみましょう。

% mpiCC hello++.cc -o hello

何も言われずに終われば,成功です。パスの設定がうまく行っていない場合は,とりあえず

% /usr/local/mpich/bin/mpiCC hello++.cc -o hello

と,直接パスを指定してコマンドを実行すればできるようです。何も文句を言われなかったら,実行してみましょう。

% mpirun hello

これで,「Hello World 〜」などと表示されればO.Kです。同様に,cpi.cというファイルでも試してみると,

% mpiCC cpi.c -o cpi
% mpirun cpi

これで,円周率の近似値が出力されれば成功です。また,このディレクトリ(basic)にはMakefileが用意されているので,makeすれば実行ファイルが出来上がります。逆に言うと,そのmakeが通ればインストールは成功しています。

さて,次はいよいよ複数台のPCを使用しての並列計算を学習します(2へつづく)。 言い忘れましたが,なんらかのトラブルで動かない場合は一度,/usr/local/mpich/sbinのなかにあるmpiuninstallで,アンインストールしてから,再度チャレンジしてみてください。


Go back