MPICH2では、Windows版が使いやすくなった模様。
MPICH2
http://www-unix.mcs.anl.gov/mpi/mpich2/
Windows版は、楽チンだなぁ。msiでインスコ完了。mpiデーモンに相当するsmpd.exeもWindowsサービスとして勝手にインストールしてくれます。ただし、パスフレーズはクラスタを構成するマシンすべてで同じにしておく、と。
ところで、mpi実行するexeは、実行時にWindowsファイアウォールのブロック機能が動作します。しかしmpich2では、けったいな感じでこけます。
幽霊ウィンドウ。
これは、mpi実行するexeごとに発生しますんで、新しいexeを配布するたびに、注意しないといけません。ポート番号8676狙い撃ちで例外ルールを設定したら良いのかもしれませんが。
さてクラスタ環境っていうんですか、使用したマシンリストは
・PC04 Duron1.3G 1GB 100Mbイーサ
・R3 Pentium M 1.1G 768MB 11Mb無線LAN
です。
> mpiexec -hosts 2 pc04 pc07 examples\cpi.exe
うーん。1台で動かしたほうが早いですなぁ;;ていうかcpiって、1000000くらい超えるとerror増えていくし。ゼロ加算を何万回もやっとるだけちゃうか。
いやいやそんなことはどうでもいいんです。問題は、遅くなることです。けれど、計算結果の誤差がどんどん増えていくcpi.exeを使い続けるのもナニなので、次は姫野ベンチのビルドに挑戦です。
paramset.shでいろいろ設定してからmakeします。
へぇ〜。シェルスクリプトでヘッダファイルを書き換えるんですかぁ。なるなる。
・・・え゛・・・まぁいいか・・・とそのままビルド。himenoBMTxp_l_exe.lzh使用。コンパイルは、VS.NET2003。ばっちりですな。lib,incをパスに追加してコンパイル、とな。おおっと、libファイルをプロジェクトに追加しないと、リンクでこけます。あったりまえだのクラッカー。
実行すると、
>bin\mpiexec -np 1 himeno.exe
Invalid number of PE
Please check partitioning pattern or number of PE
と出ます。paramset.shでCPU数の設定が必要とかそういう問題かな。まさか、PortableExecutableのことじゃないですよね?(劇汗)シェルスクリプト読むのもメンドイので、とりあえず、VPC上のDebianを復活させてみよう。とごにょごにょしてみました
・・・・Debianの仮想PC死んでた;;
気を取り直して、Vineの仮想PCでゴー。あ゛〜。XP新規インストールしてから、VPC入れてなかった〜。あ゛〜。VPCの仮想CD読むには、CD革命入れなきゃ〜。あ゛〜。CD革命のアップデート入れなきゃ〜。あ゛〜VPCもSP1入れなきゃ〜。あ゛〜(つづく)
とにかくVine上で
$ ./paramset.sh M 1 1 2
吐き出されたparam.hを・・・・どうやって取り出そうかな。メンドイなぁ。家庭内FTPサーバ必要だなぁ。メンドイなぁ。
なんしかこれで姫野ベンチがMPI for Windowsな環境で動作するようになりました。まずは単体で
> mpiexec -np 2 himeno.exe
360MFLOPSとな。結果出力の読み方がようわからんですが、どこにも解説がないのはナゼ?まぁいいや。
次は、PC04とR3で
>mpiexec -np2 -machinefile machines himeno.exe
なるほどなるほど。350MFLOPS<360!!!とな。・・・・・・・・チガウ何かがチガ〜ウ!
ちょっと見てみると、単体ならCPU100%になりますが、2台で動かすと、各CPUが50%程度の負荷となっているようです。そりゃぁ、ダメですわな。コンパイルオプションとか関係あるんけ?
いやいや、高校生さんのレポートに助けられましたよ。
姫野ベンチは、1分
間程度のほぼ一定の時間で計算するので小さいサイズであるとループ回数が多くなる。すなわち
全体に対する通信コストの割合が多くなる
「CD だけでできるMPI 並列処理のためのPC クラスタシステムの開発〜普通のパソコンがあっという間にスパコンに!?〜」広島県立広島国泰寺高等学校 科学部物理班 より引用
ということは、R3の無線LANが悪者なんですかな?でもでも、ネットワークの負荷としては15〜20%程度しか食ってませんよ。
ヲタクがゴタクを並べていてもしようがありません。とにかく有線LANに変更
ごみためクラスタ:
・PC04 Duron1.3G 1GB 100Mbイーサ
・R3 Pentium M 1.1G 768MB 100Mbイーサ
・コレガ製超高性能ブロードバンドルータの中のHUB^^
結果
・PC04単体
372.154609MFLOPS
・ごみためハイパークラスタ
624.182637MFLOPS
1.7倍ですか。これなら、ごみためまん的にはokです。
ほっと一息お茶してるときに気づきましたが、Windows版ではスタートメニューからたどれる、
・wmpiconfig
・wmpiexec
を使えば、コマンドプロンプトでごにょごにょしなくて済むんやね。これは便利。
MPIをWindowsでやることって、ヘタレ行為なんですかね。インストールから動かしてみるまでは最短距離を走れるように感じるのですが。そう思ってググルと、MPICH2以前の記事として、
http://www2.itc.nagoya-u.ac.jp/pub/pdf/pdf/vol03_03/194_225kouza.pdf
を発見しました。コレ読むと、「Windowsでもいいんじゃないの?」という感じで気分が良くなりました。
この記事は、ExcelVBA+VB+.NET Remotingについても触れられています。そうすると、思い出すのが、DNP大日本印刷のAD-POWERsですなぁ。つい先日、20万円でグリッドコンピューティング 大日本印刷がソフト発売というExcelマクロアクセラレータのプレスリリースも出ていましたし。
もしかして中の人は同じですか?
りんくる
姫野ベンチ
http://accc.riken.jp/HPC/HimenoBMT/index.html
リケンて、わかめちゃんとは関係ないんですよね?
広島県立広島国泰寺高等学校科学部物理班
http://kagakububuturi.hp.infoseek.co.jp/
未解決事項:
$ paramset.sh L 1 1 2
で作ったhimeno.exeはマシン1台当り1GBくらいメモリを食うので動かせません。
> mpiexec -validate -host r3
FAIL: Unable to read the credentials from the registry.
-validateが動作しない。(インストール後1回は動作した)
> mpiexec -register
おかしい。おかしい。心配。怖い;;
MPICH2向けのビルドのオプションがようわからんす。ソースに入っているサンプルのプロジェクトを見てみよう。
これから出発する人への注意(おやつは150円まで。うまい棒禁止):
・himeno.exeとかは全マシンの同じパスに放り込んでおかないとだめ
> mpiexec -hosts 2 pc04 r3 himeno.exe
launch failed: CreateProcess(himeno.exe) on ‘R3’ failed, error 2 – 指定されたファイルが見つかりません。
↑こんなん出ます。
・ごみためクラスタでは全マシンで同じユーザ名が登録してあります。そうでない環境でどうなるかは不明。
親切心から貼り付ける、param.h。
/* L 1 1 2
#define MX0 257
#define MY0 257
#define MZ0 513
#define MIMAX 257
#define MJMAX 257
#define MKMAX 259
#define NDX0 1
#define NDY0 1
#define NDZ0 2
*
*//* M 1 1 2
*
*/
#define MX0 129
#define MY0 129
#define MZ0 257
#define MIMAX 129
#define MJMAX 129
#define MKMAX 131
#define NDX0 1
#define NDY0 1
#define NDZ0 2/* Default
#define MX0 33
#define MY0 33
#define MZ0 65
#define MIMAX 19
#define MJMAX 19
#define MKMAX 35
#define NDX0 2
#define NDY0 2
#define NDZ0 2
*
*/
(追記)
マイクロソフトさんは必要なものをちゃんと作ってくれるんですなぁ。
http://www.itmedia.co.jp/enterprise/articles/0503/04/news053.html
どうやら2003サーバの新バージョンのようですが、こんなリンク
並列プログラミングのソフトウェア
もあるんですが、XPはスルーされてますか?そうですか。
どっちゃにしてもまずはMPI対応からスタートのようです。いまからMPICH2で練習しておいてもソンは無いんでしょうな^^
(追記:2005/05/17)
参考書発見
実践MPI‐2―メッセージパッシング・インタフェースの上級者向け機能
posted with amazlet
at 05.05.17
ウイリアム グロップ ラジーブ タークル ユーイング ラスク
William Gropp Rajeev Thakur Ewing Lusk
畑崎 隆雄
ピアソンエデュケーション (2002/09)
売り上げランキング: 117,976
通常2〜3日以内に発送
Amazon.co.jp で詳細を見る
・・・かなり実践的な本らしいです。
MPI並列プログラミング
posted with amazlet
at 05.05.17
P. パチェコ
Peter S. Pacheco
秋葉 博
培風館 (2001/07)
売り上げランキング: 61,196
通常2〜3日以内に発送
Amazon.co.jp で詳細を見る
・・・MPI-1ベースながら,定番らしいです。
ごみためのランキングはこちら。