1 名前:デフォルトの名無しさん [04/11/07 18:25:56] MPIによる並列プログラミングについて話し合う統合スレッドです。 とりあえず本家 www-unix.mcs.anl.gov/mpi/
2 名前:デフォルトの名無しさん [04/11/07 18:26:35] MPIってなんだ? www.h7.dion.ne.jp/~matsu/pc_cluster/mpi/intro/intro.html
3 名前:デフォルトの名無しさん [04/11/07 18:29:00] MPI(Message Passing Interface)での並列計算 p-grp.nucleng.kyoto-u.ac.jp/~uchida/mpi/
4 名前:デフォルトの名無しさん mailto:sage [04/11/07 18:31:57] CORBAとかでできないの?
5 名前:デフォルトの名無しさん [04/11/09 17:28:21] 初心者ですが何かよい参考書はありませんか?
6 名前:デフォルトの名無しさん mailto:sage [04/11/09 17:31:56] slashdot.jp/articles/04/11/08/087207.shtml?topic=2
7 名前:デフォルトの名無しさん mailto:sage [04/11/09 18:32:22] >>6 高校生でもこれほどの環境を手に入れられる時代になったのですね。 素晴らしい。
8 名前:デフォルトの名無しさん mailto:sage [04/11/14 01:07:13] LAM/MPI Parallel Computing www.lam-mpi.org/ SMPP > PCクラスタ超入門 mikilab.doshisha.ac.jp/dia/smpp/ 「スカラー・チューニング講習会」 「並列プログラミング(MPI)講習会」で配布したテキスト accc.riken.jp/HPC/training/text.html OOMPI www.osl.iu.edu/research/oompi/
9 名前:デフォルトの名無しさん [04/11/22 16:29:37]
10 名前:デフォルトの名無しさん [04/11/25 13:28:07] 例とかが載っているサイトとかがあったら教えてください
11 名前:デフォルトの名無しさん mailto:sage [04/11/25 13:58:06] >>10 とりあえず9までにいくつかある
12 名前:デフォルトの名無しさん mailto:sage [04/11/25 19:55:03] MPIは使い方は簡単だけど、問題はアルゴリズムの並列化だよね。 MPI自体はほんとに難しいことはないから、リンク先でも読めばすぐにわかるよ。
13 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:03:55] MPI始めたばかりなんですが mpiccを実行した後、mpirunすると 0 - MPI_SEND : Invalid rank 2 p0_23956: p4_error: : 8262 [0] Aborting program ! [0] Aborting program! パイプ破壊 とエラーがでてしまいます。 何がいけないのでしょうか?;;
14 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:15:19] >>13 他のMPIプログラムはちゃんと動いたの? もし動いたのなら、今回動かなかったプログラムのソースは載せられる?
15 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:34:03] >>13 > 0 - MPI_SEND : Invalid rank 2 Invalid rankなんだから、"2" に対応するpeがMPI_Sendで使用したコミュニケー タに無いんじゃないの?
16 名前:13 mailto:sage [04/12/17 19:54:48] 早速のレスありがとうございます >>14 他のプログラム(πの計算)などはできました。 今回のは↓にUPしました。 www.geocities.jp/cirque55510/cellmpi.c >>15 ちょっと
17 名前:13 mailto:sage [04/12/17 20:01:13] うわ・・書いてる途中で >>15 知識が足りなくて理解できない… 本でも買って出直してきます;;
18 名前:デフォルトの名無しさん mailto:sage [04/12/18 00:03:34] >>16 for(source=1;source<mb;source++){ 多分ここでしょ。でもmbをpに直しても間違いのような・・・ 突っ込みどころたくさんあるんだけど、もうちょい勉強してみて。
19 名前:デフォルトの名無しさん mailto:sage [04/12/18 00:41:44] >>16 これでも読んでください。 同志社大学の人が授業で使っている講義資料かな? あそこは設備があるしね。。 mikilab.doshisha.ac.jp/dia/smpp/cluster2000/PDF/chapter02.pdf
20 名前:13 mailto:sage [04/12/18 01:40:26] >>16 ,17 ありがとうございます。 周りに聞ける人いなくて助かりましたー 勉強してがんばります!
21 名前:13 mailto:sage [04/12/18 01:41:56] >>18 ,19でした…ミスばかりですみません;;
22 名前:13 mailto:sage [04/12/19 19:09:57] 同志社の資料はわかりやすいですね。 「MPI並列プログラミング」(P.パチェコ著)も買ってみたんですが 結構難しくてちゃんと理解できるか不安に・・・。
23 名前:デフォルトの名無しさん [04/12/20 16:49:59] KNOPPIX クラスタ 情報交換会 日時:12月28日 13:30- 場所:同志社大学 京田辺校地 香知館 3F会議場 ttp://www.is.doshisha.ac.jp/SMPP/meetings/2004/041228.html
24 名前:デフォルトの名無しさん mailto:sage [05/01/06 16:45:54] む〜んエラーばっかだ かなり行き詰まってきた;; <NO ERROR MESSAGE> : Internal MPI error! Attribute in commun icator is not a valid attribute Special bit pattern 0 in attribute is incorrect. [0] Aborting program ! [0] Aborting program!
25 名前:デフォルトの名無しさん mailto:sage [05/01/12 16:14:33] プロセス数2以外でやると止まってしまうんですが 原因がわかりません…ご教授のほどを 他のプログラムはプロセス数に限らず動いたんだけどなぁ
26 名前:デフォルトの名無しさん [05/01/13 23:07:13] print文を入れてどこで止まってるか調べたら? 多分MPIの通信ルーチンの所だと思うけどね。
27 名前:デフォルトの名無しさん mailto:sage [05/02/15 02:50:23 ] >>25 どういう状況でとまるのか書かないとわかりにくいッす。 愚考ながら、1のときと3のときでは止まる原因が違う、ということも。 ところで、MPICHのWIN版設定ってやってるページ少ないですね。 GUIのmpirunは接続異常は表示しないし…
28 名前:デフォルトの名無しさん mailto:sage [05/02/18 03:07:35 ] ちょいとお尋ねしますが。 MPICHって、GlobalArrays実装してますか? 英文必死こいて読んで見たけど、らしき記述が見当たらないのです。 ・・・いや、職場で異様に自信満々で「共有メモリ使える」と逝ってる香具師がいるもんで。 そもそも分散型プロセス通信の為の規格っつーか仕様ですよね?>MPI
29 名前:デフォルトの名無しさん mailto:sage [05/02/18 11:13:13 ] >>28 まさか「共有メモリ」なんて無いですよ。MPIって "Message Passing Interface" ですもん。 プロセッサ間のやりとりはすべてメッセージの送受信ですよ。 > ・・・いや、職場で異様に自信満々で「共有メモリ使える」と逝ってる香具師がいるもんで。 ずいぶんと不幸な職場環境ですね……
30 名前:28 mailto:sage [05/02/18 21:09:43 ] >>29 ・・・やっぱり? おかしいとは思ったんですわ。 まあ、もうちょっと読み進めては見ますがせっかくだし。 それはそれとして、RMAのある実装って何かありますか? MPICHにはないようで。 うまく使えばかなりおいしそうなんで、いじってみたい・・・
31 名前:デフォルトの名無しさん [05/02/22 10:09:38 ] パソコンにインストールしたいのだけどどこから手をつけていいかわからん
32 名前:デフォルトの名無しさん mailto:sage [05/02/24 03:22:52 ] とりあえず、 ハード的にはネットワークの使えるパソコン数台と、ルーター ソフト系は上のほうの紹介サイトぐるっと回ってライブラリをとってくる。 あとはメインのプログラムの開発環境、これぐらい?
33 名前:デフォルトの名無しさん [05/03/09 17:16:27 ] bcc32で使える?
34 名前:デフォルトの名無しさん [2005/03/28(月) 08:43:19 ] 拡張子が.cの場合は問題ないのに、.cppにすると下記のようなエラーが出ます。 何がいけないのでしょうか?解決方法を教えてください。 /tmp/ccGU5ztX.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status
35 名前:デフォルトの名無しさん mailto:sage [2005/03/28(月) 08:45:49 ] 拡張子を.cにする。
36 名前:デフォルトの名無しさん [2005/03/28(月) 08:57:36 ] c++を使用したい場合は?
37 名前:デフォルトの名無しさん mailto:sage [2005/03/28(月) 09:11:02 ] >>36 g++でコンパイルやリンクしてる?
38 名前:デフォルトの名無しさん [2005/03/28(月) 09:12:40 ] mpiccです。
39 名前:デフォルトの名無しさん [2005/03/28(月) 16:28:41 ] MPIつかったプログラムを走らせた場合、すべてのプロセスは終わるときも同時に終わるのですか?
40 名前:デフォルトの名無しさん [2005/03/28(月) 16:30:00 ] 同時に終わるようにプログラムしないと同時には終わらないよ
41 名前:デフォルトの名無しさん [2005/03/29(火) 02:56:38 ] プログラム中で、クラスを作成し、プログラム終了時に、ブロックから抜けることによって破棄されます。 このクラスのデストラクタがランク0以外働かないのですが、何故なのでしょうか?
42 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 10:25:22 ] >38 mpiCCでいける
43 名前:デフォルトの名無しさん [2005/03/29(火) 11:17:29 ] 受け取る側のプロセスがまだrecv関数に到達していないときに、送信側がsendを送った場合、メッセージは破棄されてしまうのでしょうか?
44 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 11:53:30 ] >>43 まずはMPIの仕様書を読もうよ
45 名前:デフォルトの名無しさん [2005/03/31(木) 07:23:49 ] MPIはC++には対応しているの?
46 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 14:28:48 ] G77などのフリーソフトでMPI関数で書かれたプログラム文を コンパイルする詳しい方法分かりますか?
47 名前:46 [2005/04/06(水) 14:40:00 ] OSはwindowsXPです。 include 'mpif.h'で定義ファイルを読み込むんですよね?
48 名前:デフォルトの名無しさん [2005/04/06(水) 15:41:26 ] >>47 Unixは使えないのですか?
49 名前:46 [2005/04/06(水) 16:07:03 ] >>48 使えないです。unixでないとできませんか?
50 名前:デフォルトの名無しさん [2005/04/06(水) 16:30:58 ] G77ってgnuのfortran?
51 名前:46 [2005/04/06(水) 16:33:04 ] そうです。無理ですか?
52 名前:デフォルトの名無しさん [2005/04/06(水) 22:37:29 ] Windows上でのfortranコンパイラは何使ってるの?
53 名前:46 mailto:sage [2005/04/06(水) 23:35:21 ] 主にG77でコンパイルしています。
54 名前:デフォルトの名無しさん [2005/04/07(木) 14:03:18 ] MPIを使ってPDEを解きたいのですが、データはそれぞれのノードがデータの一部分を持つのでしょうか? threadを使ったプログラムは経験があるのですが、MPIでの作成方法がよくわかりません。
55 名前:デフォルトの名無しさん [2005/04/11(月) 00:23:11 ] MPICH2使った人いる?MPICHは普通に動くのだけれどMIPCH2が全然機能してくれない。
56 名前:デフォルトの名無しさん [2005/04/16(土) 01:49:10 ] mpichについていたπの計算するプログラムが理解できません。 なんでwhile(!done){}あたりのギミックが必要なの?
57 名前:デフォルトの名無しさん [2005/04/16(土) 13:14:57 ] _、 _ ∩ ( ∀`) 彡 >>56 教えてやってもいいが ((≡O ⊃ | | おまい!左腕を上下 右腕を前後 し⌒J 同時にやってみろ!話はそれからだ!
58 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 13:52:56 ] CPUは別々に稼動してるだろ。CPU1個が処理終わったからといって 他のn個のCPUが処理が完全同期で終わる保証はどこにもないだろ。 だったら全部の処理が終わるまで待つのは当たり前だろ。 それともそんなことすら解らないのか?プログラム組むの辞めろ。お前は もう、日本から出て行け
59 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 16:24:45 ] >>56 > なんでwhile(!done){}あたりのギミックが必要なの? 単にコードの書き方がまずいだけと思われ。 この内容ならもっと見やすくシンプルにできるよね。
60 名前:デフォルトの名無しさん [2005/04/16(土) 21:35:10 ] 56です。 なんかわかったような気がする。 コメントアウトの部分のソースを無視していました。 頭悪くてすみませんでした。 >>58 さん MPI_Reduce()で全プロセスが終わるの待ってるのかと思ってたんですけど 違うんですか?
61 名前:デフォルトの名無しさん [2005/04/30(土) 18:49:38 ] CPUが空いているマシンから優先的にジョブを割り当てるにはどうしたらよいのでしょうか?
62 名前:デフォルトの名無しさん [2005/05/01(日) 01:56:36 ] エラーもなくコンパイルが終わり、プログラムを実行すると、ある時点で p5_30033: p4_error: interrupt SIGSEGV: 11 Broken pipe Broken pipe というエラーが出ます。これは何がいけないのでしょうか? 個人的には、ファイルアクセスで問題が起きていると思っているのですが、エラーの原因が未だつかめません。
63 名前:デフォルトの名無しさん [2005/05/01(日) 02:18:46 ] >>60 >>58 そいつ、単なるバカだから相手にすんな
64 名前:デフォルトの名無しさん [2005/05/03(火) 11:48:06 ] >>62 配列の範囲外にアクセスしているとか MPI以外のエラーを疑え
65 名前:デフォルトの名無しさん [2005/05/05(木) 11:48:10 ] gccのバージョンの違うコンパイラでmakeしたMPIを別のバージョンgccでコンパイルするCプログラムで利用しても問題ないですか? 問題ないと思っていたのですが、gcc4にアップデートして以来、原因不明で0番プロセス以外が実行中に落ちます。
66 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 03:33:52 ] x86 向け gcc4 はまだバグありで危険じゃないのかな。 gcc3 を使ってた方が安全だよ。
67 名前:デフォルトの名無しさん [2005/08/19(金) 18:09:30 ] MPICH2をインストールするのにちょっと苦戦してるんですが mpd.confにsecretwordを書いた後どうすればいいかちょっと分かりません 教えてもらえないでしょうか?
68 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 18:42:55 ] × 教えてもらえないでしょうか? ○ ちょっと教えてもらえないでしょうか?
69 名前:デフォルトの名無しさん [2005/08/22(月) 05:24:37 ] これがちょっち?
70 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 19:38:13 ] SCore使って上げてヽ(;´Д`)ノ
71 名前:デフォルトの名無しさん [2005/09/12(月) 22:52:56 ] ググってみましたが、情報が少ないですね。 C++でサーバアプリで計算しながら、クライアントアプリにソケット通信するようなシステムに 適用できますか? サーバー側は1000件/分ぐらいのトランザクションで、クライアント側はサマリー情報を 半リアルで表示させるだけといったかんじです。
72 名前:デフォルトの名無しさん mailto:sage [2005/09/13(火) 07:18:44 ] 余裕
73 名前:デフォルトの名無しさん [2005/11/06(日) 16:40:07 ] mpiプログラミングの前にmpiの勉強をした方が(w
74 名前:デフォルトの名無しさん [2005/11/17(木) 11:20:42 ] 実行時に使用するコンピュータを指定することは出来ないのでしょうか?
75 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 13:12:49 ] できますよ
76 名前:デフォルトの名無しさん [2005/11/17(木) 16:19:52 ] やり方を教えてください
77 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 16:56:14 ] 方法はMPIの実装に依る
78 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 23:26:52 ] >>67 www-lab.imr.tohoku.ac.jp/~t-nissie/computer/wolfchen/doc/HomeWolfchenProject.html
79 名前:デフォルトの名無しさん [2006/01/12(木) 23:20:44 ] お客さんの16CPUマシン(8node, SMP 2way)向けにC言語でMPIプログラムを書いています。単純に差分法で計算するプログラムです。でも私の開発環境は、Pen4の1CPU、fedora3マシンなのです。その1CPUマシンで mpirun -c 16 myprog.exe で実行すると、16個のプロセスが動き始めるのですが、問題があります。 それは、プログラムを実行すると、データファイルを読み込んで、処理が始まるのですが、データファイルはいくつかの大きさのものを用意しているのですが、 あるデータファイルでは、正しく計算が完了するのですが、あるデータファイルでは 計算開始直後にエラーで終了してしまいます。調べたところ、MPI_Bcast()で エラーしていました。 また、正しく計算できるデータファイルを使って、 mpirun -c 8 myprog.exe のように変えるとエラーする場合もあります。 そこで教えていただきたいのですが、そもそも1CPUマシンで、このような並列計算を 実行することは、何か問題がありますでしょうか? よろしく。
80 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 06:41:19 ] 基本的に動かないとまずい。 メモリ不足とかじゃなきゃ、プログラムのバグだろうね
81 名前:デフォルトの名無しさん [2006/01/13(金) 11:50:49 ] アドバイスありがとうございます。 >基本的に動かないとまずい。 >メモリ不足とかじゃなきゃ、プログラムのバグだろうね やはりそうですか。 実際、プログラムを単純化して、単に16プロセスでMPI_Bcast()するだけというプログラムでは、問題なく動きます。 16以外のどんな数字でも問題ありません。なので、プログラムのバグの可能性が高いのですが、一つ気になる点は、 エラーするケースでも、エラーしないケースでも、いずれの場合でもプロセスをps -ef などでモニタしていると、 実行中に16プロセスそれぞれの親プロセスIDがころころ変わっているのが確認できるのですが、何かそのあたり に関係しているのではと思うのですが、どなたか詳しい方、ヒントなどお願いします。
82 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 08:59:30 ] mpichでもlamでも、実機でもなるってんだったら、 プログラムのバグ。 MPI_Barrier()で、きちんと同期とって MPI_Bcast()で起こってるなら MPI実装を疑ってもいい。 まあ、なんだ。 漏れには「FedoraのMPIでエラー終了」じゃ、 どのMPI環境なのかも どんな異常終了かもサパーリですよ。
83 名前:デフォルトの名無しさん [2006/01/15(日) 14:56:36 ] >実際プログラムを単純化して、単に16プロセスでMPI_Bcast()するだけというプログラムでは、問題なく動きます (1) 単純化したプログラムと、エラーが起こる実プログラムで、 送信データの大きさは同じですか? (2)どういうエラーメッセージが出ますか? (3)mpi_bcastの前後にprintfでランクの値を書き出した場合、 どうなりますか? (全プロセスがmpi_bcast前しか表示しないのか、 それともプロセスによってはmpi_bcast後も表示するのか) (4)エラーが起こるデータファイルで、プロセス数が16より少ないときは どうなりますか?
84 名前:デフォルトの名無しさん [2006/01/16(月) 00:57:31 ] 皆さん、アドバイスありがとうございます。 >(1) 単純化したプログラムと、エラーが起こる実プログラムで、 >送信データの大きさは同じですか? はい。MPI_INTを一個です。 >(2)どういうエラーメッセージが出ますか? 今自宅なので、正確には覚えていませんが、英語のメッセージで、 『どれかのプロセスでエラーしました』とか言う感じだったと思います。 >(3)mpi_bcastの前後にprintfでランクの値を書き出した場合、 >どうなりますか? 正しく、自分のランク値が表示されます。 >(全プロセスがmpi_bcast前しか表示しないのか、 >それともプロセスによってはmpi_bcast後も表示するのか) 全プロセスで、MPI_Bcast前に正しいランク値が表示されますが、 MPI_Bcast後には、どのプロセスも何も表示されません。
85 名前:デフォルトの名無しさん [2006/01/16(月) 00:58:31 ] >(4)エラーが起こるデータファイルで、プロセス数が16より少ないときは >どうなりますか? ええっと、その後、いろいろ試してみたら以下のようになりました。 分割数 大きいデータ 小さいデータ 2 OK エラー 4 OK OK 5 エラー エラー 6 エラー エラー 7 エラー エラー 8 エラー OK 9 エラー OK 10 エラー OK 11 エラー OK 12 OK OK 13 エラー OK 14 OK OK 15 エラー OK 16 エラー OK 20 エラー OK というわけで、よく分かりません。 ちなみに、MPI_Barrier同期は、まったく問題なく動きます。 今のところ、MPI_Bcastを使うのをやめて、MPI_Send/MPI_Recvで同等の処理を することで、エラーを回避できたようなのですが、MPI_Bcastがエラーする 原因が分からないので、ちょっと気がかりです。
86 名前:デフォルトの名無しさん [2006/01/16(月) 04:45:45 ] (5) >はい。MPI_INTを一個です。 確認ですが、一個というのは、下記の2つ目の引数が1という意味ですか? MPI_Bcast(a,1,MPI_INT,〜); (6) 上記MPI_BCASTの4つ目の引数(送信元プロセスのランク値)は、 全プロセスで同じ値になっていますか? また、2,3つ目の引数(送受信バッファーの個数と型)も 全プロセスで同じ値になっていますか? (7)下記の表の意味ですが、1CPUで2プロセス(mpirun -np 2)で実行し、 小さいデータを入力させた場合でもエラーになるという意味ですか? またこれは何度やっても同じ結果ですか? (つまり同じケースでもOKになったりエラーになったりすることはないか) 分割数 大きいデータ 小さいデータ 2 OK エラー
87 名前:デフォルトの名無しさん [2006/01/16(月) 04:50:20 ] (8) 問題のMPI_Bcastに到達する前に、MPIの他の通信は行っていますか? (9) 実プログラムが下記のような構成になっているとして (a)の部分をすべてコメントにすれば、 (単純化したプログラムではうまくいくとのことなので) うまく動くと思いますが、 その後で、(a)の部分を前半から少しずつ コメントをはずしてはテストしを繰り返せば、 どこかで再びエラーとなるはずです。 それによって、エラーの原因となっている個所が特定できるかもしれません。 あるいは逆に、(b)と同等の通信を(送信バッファーの中身は空でも可) まず(a)の直前で行い、うまくいったら、 (a)内を少しずつ後ろへずらしていっても同じテストができます。 MPI_Init(); (a) 入力ファイルの読み込み等 (b) MPI_Bcast(a,1,MPI_INT,〜); (c) 計算 MPI_Finalize();
88 名前:デフォルトの名無しさん [2006/01/16(月) 05:13:37 ] (5)の訂正 >はい。MPI_INTを一個です。 確認ですが、一個というのは、下記の2つ目の引数が1という意味ですか? MPI_Bcast(a,1,MPI_INT,〜); また、下記の大きいデータの場合も小さいデータの場合も1ですか? 分割数 大きいデータ 小さいデータ 2 OK エラー
89 名前:デフォルトの名無しさん [2006/01/16(月) 18:19:54 ] 長文のアドバイスありがとうございます。 >(5)の訂正 >確認ですが、一個というのは、下記の2つ目の引数が1という意味ですか? >MPI_Bcast(a,1,MPI_INT,〜); はい、そうです。 >また、下記の大きいデータの場合も小さいデータの場合も1ですか? >分割数 大きいデータ 小さいデータ >2 OK エラー はい。 >(6) 上記MPI_BCASTの4つ目の引数(送信元プロセスのランク値)は、 >全プロセスで同じ値になっていますか? はい、そうなっています。printfで確認しました。 >また、2,3つ目の引数(送受信バッファーの個数と型)も >全プロセスで同じ値になっていますか? はい、同じです。 >(7)下記の表の意味ですが、1CPUで2プロセス(mpirun -np 2)で実行し、 >小さいデータを入力させた場合でもエラーになるという意味ですか? はいそうです。 >またこれは何度やっても同じ結果ですか? >(つまり同じケースでもOKになったりエラーになったりすることはないか) 再現されます。同じデータ、同じ分割数で、数回実験しましたが、その時は再現しました。 でも、何十回も同じ条件でテストしたわけではありません。 >(8) 問題のMPI_Bcastに到達する前に、MPIの他の通信は行っていますか? 他に行っているのは、MPI_Barrierのみです。同期をたくさん入れれば問題が解決するんじゃあ ないかと思って、たくさん入れました。 >(9) 実プログラムが下記のような構成になっているとして >(a)の部分をすべてコメントにすれば、 これらのテスト結果の報告は、後日させていただきます。
90 名前:sage [2006/01/19(木) 03:41:50 ] mpichをインストールをしたいのですがconfigureで指定しなければならない オプションをちょっと教えていただけないでしょうか? osはfedora core4 コンパイラーにintel fortran compilar 9.0 mpich-1.2.7p1 を使用しています。 よろしくおねがいします。
91 名前:デフォルトの名無しさん [2006/01/19(木) 17:54:06 ] こんなふうに、実数型と整数型を一緒にするとエラーがでます。 if ( myid .eq. 0 ) then call MPI_IRecv(retunum,90,MPI_REAL8,1,itag(myid+2),MPI_COMM_WORLD,ireq2,ierr) elseif ( myid .eq. 1 ) then call MPI_ISend(retunum,60,MPI_REAL8,0,itag(myid+1),MPI_COMM_WORLD,ireq2,ierr) end if if ( myid .eq. 0 ) then call MPI_IRecv(iretunum,90,MPI_INTEGER,1,itag(myid+2),MPI_COMM_WORLD,istaus,ierr) elseif ( myid .eq. 1 ) then call MPI_ISend(iretunum,60,MPI_INTEGER,0,itag(myid+1),MPI_COMM_WORLD,ierr) end if 以下のように、何故ですか?わかる人教えて下さい。 test-calcul2.f:99: warning: call MPI_IRecv(retunum,90,MPI_REAL8, 1 test-calcul2.f:106: (continued): call MPI_IRecv(iretunum,90,MPI_INTEGER, 2 Argument #1 of `mpi_irecv' is one type at (2) but is some other type at (1) [info -f g77 M GLOBALS]
92 名前:デフォルトの名無しさん [2006/01/19(木) 17:56:58 ] あ、タイプミスだ。 > if ( myid .eq. 0 ) then > call MPI_IRecv(iretunum,90,MPI_INTEGER,1,itag(myid+2),MPI_COMM_WORLD,istaus,ierr) > elseif ( myid .eq. 1 ) then > call MPI_ISend(iretunum,60,MPI_INTEGER,0,itag(myid+1),MPI_COMM_WORLD,ierr) > end if if ( myid .eq. 0 ) then call MPI_IRecv(iretunum,90,MPI_INTEGER,1,itag(myid+2),MPI_COMM_WORLD,ireq2,ierr) elseif ( myid .eq. 1 ) then call MPI_ISend(iretunum,60,MPI_INTEGER,0,itag(myid+1),MPI_COMM_WORLD,ireq2,ierr) end if です。
93 名前:デフォルトの名無しさん [2006/01/20(金) 00:14:20 ] 下記のプログラムでも同じエラーが出ますか? もし同じエラーが出たとしたら、 同じサブルーチンの同じ引数に異なる型を指定しているという 警告で、MPIとは関係ないと思います。 program test call sub(a) call sub(i) end subroutine sub(a) a=1 end
94 名前:デフォルトの名無しさん [2006/01/20(金) 00:21:15 ] それから念のため補足ですが -2つのif文を1つにまとめた方がすっきりすると思います。 -例えばランク0プロセスが同じireq2を(mpi_waitする前に)2回使うのはまずいです。 片方を例えばireq1にしてください。 また2回のcall mpi_xxxの後でmpi_waitが2回必要となります。 あるいはmpi_sendrecvを使う手もあります。
95 名前:91 [2006/01/23(月) 16:20:18 ] >>93 まさにそれでした。 >>94 なるほど、了解です。 ところで、送信バッファーに3次元の配列を持たせたいのですが 送受信がうまくいきません。何故かわかる方いますか? if ( myid .eq. 0 ) then call MPI_Recv(test(i,j,1),3,MPI_REAL8,1,itag, & MPI_COMM_WORLD,istaus,ierr) else call MPI_Send(test(i,j,1),3,MPI_REAL8,0,itag, & MPI_COMM_WORLD,ierr) endif test(1〜50,1〜100,1〜3)です。
96 名前:デフォルトの名無しさん [2006/01/23(月) 18:40:47 ] (1) test(i,j,1)のiとjには何が指定されてますか? (2) 送る要素数は3個ですか? (3) istatusは大きさmpi_status_sizeで配列宣言してますか? (4) itagには何が指定されてますか? (5) 実行するとどういうエラーになりますか?
97 名前:91 [2006/01/24(火) 11:15:33 ] >>96 (1) test(i,j,1)のiとjには何が指定されてますか? i=1,100とj=1,300です。DOループで指定されます。 (2) 送る要素数は3個ですか? はい、南北方向・東西方向・上下方向の意味なので、3個です。 (3) istatusは大きさmpi_status_sizeで配列宣言してますか? integer istatus(MPI_STATUS_SIZE)で宣言しています。 (4) itagには何が指定されてますか? itag=1です。 (5) 実行するとどういうエラーになりますか? テストプログラムで行った結果、エラー文は出ませんでしたが 入っているはずの値が入っていませんでした。 たとえば、10.5が入るはずなのに、0.0のままであったりします。
98 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 18:43:50 ] 動かない並列プログラムを無料でデバッグしてくれるスレはここですか?
99 名前:デフォルトの名無しさん [2006/01/24(火) 18:46:04 ] 例えばi=1,j=1のとき、送りたいデータは以下(A)(B)のどちらですか? (Fortranの場合は(A)が送られます。) (A) test(1,1,1) test(2,1,1) test(3,1,1) (B) test(1,1,1) test(1,1,2) test(1,1,3) 余談ですが、通信回数が多いと通信時間がかかるので、 普通は送りたいデータをまとめて1回で送るようにします。 従ってループ内で通信を行うということはあまりしません。
100 名前:デフォルトの名無しさん [2006/01/26(木) 13:56:53 ] MPIf77でコンパイルできても MPIf90でコンパイルできねー!! ↓こんな感じのエラーしかでねー!! IPO Error: unresolved : mpi_type_dup_fn_ Referenced in newfile.o IPO Error: unresolved : mpi_win_dup_fn_ Referenced in newfile.o newfile.o(.text+0x20): In function `MAIN__': : undefined reference to `mpi_init_' newfile.o(.text+0x34): In function `MAIN__': : undefined reference to `mpi_comm_rank_' MPIのインストールの時おかしな事したのか?おれ
101 名前:デフォルトの名無しさん [2006/01/31(火) 15:53:13 ] age
102 名前:デフォルトの名無しさん [2006/01/31(火) 19:28:15 ] こんなエラーがでるんだが誰れか原因解かりますか? [root@clust-gri00 test]# mpif90 -o testfile testfile.f /usr/local/mpich-1.2.6/lib/libmpich.a(farg.o)(.text+0x7): In function `mpir_iargc__': : undefined reference to `f__xargc'
103 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 06:24:47 ] まあせめて中のコンパイラぐらい書こうな
104 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 08:24:55 ] あと大学名と担当教官名も
105 名前:デフォルトの名無しさん [2006/02/01(水) 18:04:38 ] Intel Fortran Compiler 8.1 から Intel Fortran Compiler 9.0に入れ換えたらこんなのがでるようになった. glibcのヴァージョンが古いのか?動くっちゃ動くし結果も間違っていないが、何か気持ちわるい。 誰れか改善方法しりませんか? /opt/intel/fc/9.0/lib/libifcore.a(for_open_proc.o)(.text+0xc14): In function `for__compute_filename.': : warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/local/mpich-1.2.6/lib/libmpich.a(p4_secure.o)(.text+0x87): In function `start_slave': : warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/local/mpich-1.2.6/lib/libmpich.a(chnodename.o)(.text+0x29): In function `MPID_Node_name': : warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
106 名前:デフォルトの名無しさん [2006/02/02(木) 04:11:56 ] めっせーじぱっしんぐってなあに?
107 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 04:29:29 ] 読んで字の如く
108 名前:デフォルトの名無しさん [2006/02/02(木) 05:39:40 ] いじわる><
109 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:20:57 ] >>105 >103-104
110 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 13:03:09 ] >>109 ? 何が言いたいの?日本語わかる? せめて会話くらいしろよ。キチガイ
111 名前:デフォルトの名無しさん [2006/02/09(木) 13:02:07 ] age
112 名前:デフォルトの名無しさん [2006/02/09(木) 14:40:46 ] MPICH2のC++バインドのクラス一覧が載ってるサイト知りませんか? ユーザーガイドにも載ってないし。
113 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 11:53:27 ] >>105 インテルのサイトにも書いた? softwareforums.intel.com/ids/board/message?board.id=11&message.id=3060
114 名前:デフォルトの名無しさん [2006/03/02(木) 23:48:55 ] MPI初心者なんですけど、 MPICHダウンロードして、一緒についてきたサンプルプログラムを MPICH Configurationで参加するノードを設定してから実行すると Failed to launch the root process: "C:\Documents and Settings\XXXXX\cpi" LaunchProcess failed, LogonUser failed, ログオン失敗: ユーザー名を認識できないか 、またはパスワードが間違っています。 というエラーが返ってきます。 設定しなければローカルで動くんだけど、何でだろう?
115 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 10:12:08 ] www-unix.mcs.anl.gov/mpi/mpich/mpich-nt/mpich.nt.faq.html Q. Why do I get this error, "Logon failure: unknown user name or bad password"? Q. Why do I get this error, "LaunchProcess failed, CreateProcessAsUser failed, The system cannot find the file specified."?
116 名前:114 [2006/03/03(金) 17:57:11 ] >>115 ありがとう! やってみるね!
117 名前:デフォルトの名無しさん [2006/03/07(火) 16:00:54 ] 独学でisend bcastなどの基本的な関数は一通り使い方がわかったのですが、 なんか練習問題みたいなのはないですか? そんな大規模演算をする機会もないし、 練習用に何かお勧めなものはありますか?
118 名前:デフォルトの名無しさん [2006/03/07(火) 17:20:48 ] sendとrecvだけでbcast,scatter,gather,allgatherと同じ機能を作る ヤコビ法の並列化 LU分解の並列化 2次元FFTの並列化
119 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 17:27:38 ] π計算の並列化 e計算の並列化
120 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 19:24:56 ] 実用的なのは、 コマンド1 コマンド2 . . . コマンドN という独立したジョブが書いてあるテキストファイルを読み込んで、 P個のプロセッサで実行させるプログラム。 コマンドに依存関係つけるとなおよし。
121 名前:デフォルトの名無しさん [2006/03/12(日) 16:05:09 ] MPI_Sendで送る際、相手が受け取るまでプログラムの実行を停止するにはどうしたらよいのでしょうか?
122 名前:デフォルトの名無しさん [2006/03/12(日) 16:09:32 ] synchronous sendにすりゃいいのと違う?
123 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 21:03:03 ] MPI_Sendだと送信バッファにコピーした状態で戻る実装が多いっぽいね。 ↓にモードの説明が。 www.mpi-forum.org/docs/mpi-11-html/node40.html MPI_Ssendがない実装もあるようだし、返答をMPI_RecvかMPI_Barrierするのが確実じゃない? バンド幅を測るとかの場合、受信が完全に終了したのを確認するにはこれしか方法がなさげ。
124 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:10:21 ] TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
125 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 11:52:28 ] C++BuilderでMPIを使うにはどうしたらよいのでしょうか?
126 名前:デフォルトの名無しさん [2006/03/24(金) 20:00:53 ] MPICH2のWindows版を使っているのですが、 以下のようなプログラムでも時間が3秒かかります。(VC++、IntelC++とも) MPI_Finalizeの終了処理に時間がかかっているようですけど 対策をご存知の方いっらいしゃますすか。 #include "mpi.h" int main(int argc, char **argv) { MPI_Init(&argc, &argv); MPI_Finalize(); return 0; }
127 名前:デフォルトの名無しさん [2006/04/13(木) 06:48:21 ] ノンブロッキング通信というのは、簡単に言うとどういうものなのでしょうか?
128 名前:デフォルトの名無しさん mailto:sage [2006/04/13(木) 08:13:11 ] バックグラウンドで通信処理をさせることで 一度に複数の相手と通信したり、 通信中に別の計算させたりするもの
129 名前:デフォルトの名無しさん mailto:sage [2006/05/08(月) 21:15:20 ] ほしゅしゅ
130 名前:デフォルトの名無しさん [2006/05/11(木) 15:37:35 ] hoshu
131 名前:デフォルトの名無しさん [2006/06/02(金) 08:31:40 ] あまり大きなサイズで一度に通信しようとすると、デッドロックするのは仕様ですか?
132 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 01:56:38 ] 実装によるだろ そんな仕様はない
133 名前:デフォルトの名無しさん [2006/07/30(日) 21:08:39 ] ちょ・・・こんな有益なスレがあったなんて。。 明日からmpi使うらしいんで勉強してきます
134 名前:・∀・)っ-○◎● ◆R.I.S.K.0. mailto:sage [2006/07/30(日) 22:45:31 ] John the RipperのMPI対応版出たけど アレって単にプロセス間通信やるだけよね? プロセスレベルマルチタスクであってスレッドレベルマルチタスクじゃないよね?
135 名前:デフォルトの名無しさん [2006/09/05(火) 22:49:52 ] Linuxにmpich-1.2.3を突っ込んで int main(int argc, char **argv){ int procs, id; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &id); MPI_Comm_size(MPI_COMM_WORLD, &procs); printf("#### %d, %d ####\n", id, procs); MPI_Finalize(); return 0; } なmain.cソースファイルを生成し, mpicc main.c mpirun -np 1 a.out したところ 0 - <NO ERROR MESSAGE> : Could not convert index 1140850688 into a pointer The index may be an incorrect argument. Possible sources of this problem are a missing "include 'mpif.h'", a misspelled MPI object (e.g., MPI_COM_WORLD instead of MPI_COMM_WORLD) or a misspelled user variable for an MPI object (e.g., com instead of comm). [0] Aborting program ! [0] Aborting program! p0_11706: p4_error: : 9039 と言われてしまいました. fortranプログラムでもないし,COMMをCOMと打ち間違えてもいないし……というわけで,原因・解決方法をご存知の方おりましたらご教授くださいませ.
136 名前:135 mailto:sage [2006/09/05(火) 23:46:15 ] mpich-1.2.7拾ってきてぶっこんだら動きました. 吊ってきます.
137 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:29:00 ] 保守党
138 名前:デフォルトの名無しさん [2006/11/16(木) 01:19:10 ] MPICH2をFedora Core3にて実行しようとしています。 mpdはローカルであれば、正常に起動してicpiなどきちんつ動いているのですが、 ネットワーク越しのリモートで分散させようとすると(mpdboot, rshに書き換え済み) 動作しません。 failed to ping mpd ...といったエラーがでます。 ちなみにrshは単体ではパスワードなしで動作しています。 Fedoreの設定はファイヤーウォールはインストールしていますが、 「ファイヤーウォールは無効」でやっています。 むしろmpdというよりもFedoraの設定のような気がしますが、同様な症状を 経験された方はおられますでしょうか?
139 名前:デフォルトの名無しさん [2006/11/28(火) 16:48:25 ] WindowsXPのVC環境で、3次元空間内におけるある種のシミュレーションプログラムを作って、 それをLinux fedora3のgccとMPI環境で並列化しました。 いまのところWin1CPU版とFedoraMPI版は同じ結果を出してくれるので、いいのですが、 ソースをメンテナンスするときに、まず1CPU版で試して、それをMPI版に移植する作業 が結構わずらわしいので困っています。 MPI版はシミュレーション空間をn分割(n≧2)する仕様になっているので、n=1として Windows上で動かすことはできません。 そこで思ったのですが、DUAL COREのWindowsマシンならば、そこにMPICH2をインストールして、 n=2で動かせば、CPUも2個使えるし、今後、MPI版のみメンテナンスすれば、fedoraでも Windowsでもソースを共通化できるので、楽になると思ったのですが、この作戦、 どうでしょうか?何か注意すべき点などありましたら、アドバイス御願いします。
140 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 18:55:13 ] >>139 mpi詳しくないけど CPU二個とnode二個はぜんぜん違うからできないんじゃないの?
141 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 20:04:15 ] 例え、1CPUでもたいがいのMPI実装は2プロセスで並列実行できる
142 名前:デフォルトの名無しさん [2006/11/30(木) 10:50:29 ] >141 ありがとございます。やってみます。 ところで、MPIプログラムのデバッグって、皆さんどういうふうにやっていますか? 私にはとても難しいです。というのは、エラー発生しても、どこかのnodeでエラーが 起こった程度のことしかわからないので、怪しげなところにprintfを沢山いれて探し 出すという泥臭い方法でやっています。 一方WindowsのVCの環境だとDebuggerでSTEPで一行ずつ実行できるので、便利なのですが、 MPIプログラム開発でも、でも何かそういう統合的な開発環境や高性能なDebuggerって あるのでしょうか?
143 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:13:29 ] VCってMPIサポートしてたよね?確か
144 名前:デフォルトの名無しさん [2006/12/02(土) 21:56:05 ] >143 ほんまかいな?
145 名前:・∀・)っ-○◎● ◆DanGorION6 mailto:sage [2006/12/02(土) 22:26:17 ] MPICH2のWin32バイナリってVC++で使えるんじゃなかったっけ
146 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 19:00:27 ] Windows Compute Cluster Server 2003 MS MPI あたりでぐぐりぇ
147 名前:・∀・)っ-○◎● ◆R.I.S.K.0. mailto:sage [2006/12/03(日) 19:07:05 ] 38度の熱が出てるのに俺元気だよなwwww
148 名前:・∀・)っ-○◎● ◆R.I.S.K.0. mailto:sage [2006/12/03(日) 19:07:20 ] 誤爆しますた><
149 名前:デフォルトの名無しさん [2006/12/04(月) 11:56:46 ] >146 >Windows Compute Cluster Server 2003 これを買わないとWindowsXPでMPIはできないの?
150 名前:デフォルトの名無しさん [2006/12/04(月) 15:24:37 ] mpiCCでHUGE_VALがあると、 huge-test.cpp(11): warning #1188: floating-point value cannot be represented exactly double a=HUGE_VAL; とワーニングが出るんだけど、どうしたらいいかな??
151 名前:デフォルトの名無しさん [2006/12/24(日) 01:09:15 ] 関数の引数として自分のタスクIDを渡して、その関数の中で受け取ったIDによって 判別して処理を書き換えるという方法に問題はあるでしょうか? また一般的ですか? それとも処理ごとに書き換えた関数を用意して、 呼び出す側でIDによって呼び出す関数を変えた方が良いのでしょうか? ご回答よろしくお願いします。
152 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 14:18:16 ] >>151 スレタイ嫁
153 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 16:11:55 ] Mac OS X LAM-MPIの詳しい解説サイトない?
154 名前:デフォルトの名無しさん [2007/01/14(日) 01:14:46 ] MPICH 1.2.5 でWindowsマシン2台でプログラムを動かそうとしたのですが、 以下のようなエラーを吐いてしまいました。 どなたか原因がわかる方いませんでしょうか。 pingでお互いのホストは認識されています。 >ERROR: The root process on "hostname" has unexpectedly exited. Exit code = -1073741515
155 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:35:32 ] >>154 [hostname]ユーザーが登録されてるクラスタのプロセスがおかしいって言ってるね もうちょっと構成とか詳しく
156 名前:デフォルトの名無しさん [2007/01/14(日) 16:33:20 ] >>155 レスありがとうございます。 大学の研究室のマシン(XP)で、お互い同じワークグループに入っているようです。 構成についてもっと詳しく書きたいのですが、 どのように調べてどういった情報を書けばいいのか教えていただけますか? よろしくお願いします。
157 名前:154 [2007/01/15(月) 19:54:35 ] 154です。 調べたのですがやはりよくわかりません。 >>156 で同じワークグループだと書きましたが、それは関係ないみたいですね。 研究室のマシンがどのようにつながっているのか良くわからないのですが、 共有フォルダで互いのファイルを参照できたり同じワークグループに入って いたりしたので、MPICHも問題なく動くものだと勘違いしていました。 WindowsでMPIを使う場合の構成の仕方が載ってるサイトの情報でも とてもありがたいので、どなたかご教示願いいたします。
158 名前:155 mailto:sage [2007/01/15(月) 22:07:54 ] >>157 ttp://www.google.co.jp/search?num=100&hl=ja&rls=GGGL%2CGGGL%3A2006-29%2CGGGL%3Aja&as_qdr=all&q=MPI+windows+filetype%3Apdf&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= googleでpdf検索すればどう設定すればいいか結構でてくるよ あとMPIプログラミングやるなら虎の巻は読んどいた方がいいね、まあ健闘を祈る! ところでCPUは何使ってる?
159 名前:154 [2007/01/16(火) 00:20:12 ] >>155 レスありがとうございます。 リンクのトップに出てくるサイトで設定をしていてできなかったのです。 で、いじくってて気づいたのですが、ユーザーズガイドのシステム要件を見たら、 WindowsのHOME EDITIONは使えないのですね・・・ これはMPICH2を使えばいいのでしょうか。 MPICH2のほうのユーザーズガイドみたら特にPROに限るような記述はなかったので HOMEでもいけるのですかね? あと、CPUですがPentium4を使っています。
160 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 02:37:19 ] >>159 Homeか・・・そりゃ無理だ デュアルブートでLinux入れる気無い?何に使うかわからんがWindows環境を捨てるのも 一つの手だよ、ただMPIを動かしたいんならKnoppix MPIとか使うと簡単に起動できる ttp://kagakububuturi.hp.infoseek.co.jp/ ・・・つーかこれ高校生が作ったにしちゃあよくできてるよな 後Knoppix-MPIで使ってるMPIはLAM-MPIのほうだからMPICH使いたいならあわないかも ttp://www20.atwiki.jp/mynote/?page=mpi 適当ですまん (;´Д`)/
161 名前:154 [2007/01/23(火) 03:52:37 ] >>160 レス遅れてごめんなさい。 実はあれからMPICH2でやってみたところ、WindowsHomeでも動かすことができました! たくさん相談にのっていただきありがとうございました。 ただ、今回4台で並列化行う予定なんですけど、 1台だけうまくいかないマシンがあってまた困っています。 他のマシンで2台でやってみると正常に実行できるのに、そのマシンを入れて行うと "abort: Unable to connect to <hostname>"と出てしまいます。 設定は他のマシンと同じようにしてるつもりなのですが。 ようやくできるようになったと思ったのに、色々問題出てきますね・・・
162 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 15:13:21 ] >>161 WinのMPICH2は使った事無いが<hostname>って言うノードが登録されてないんじゃないか? ttp://www.imslab.co.jp/Product/eem/parallel/faq.htm 上のページの一番下が原因かも あとMPI組んだならHPL(Linpack)ベンチマーク走らせて結果うp!
163 名前:154 [2007/01/24(水) 02:08:24 ] >>162 レスありがとうございます! ご指摘のとおり、アカウント名が原因でした。 あとベンチマークですが、、、余裕があったらやってみます、スミマセン^^;
164 名前:デフォルトの名無しさん [2007/01/30(火) 17:50:05 ] あるプロセッサが持っている行列内の1列をまとめて別のプロセッサに送りたいんですが どのような関数を使えばいいでしょうか?
165 名前:デフォルトの名無しさん [2007/01/30(火) 22:47:50 ] Parallel Virtual Machine (PVM) 統合スレ pc10.2ch.net/test/read.cgi/tech/1170150974/
166 名前:デフォルトの名無しさん [2007/01/31(水) 15:24:23 ] 共有変数を用意したいのですがどうすればいいですか?
167 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 19:26:04 ] >>166 つ ny
168 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 09:33:01 ] MPICH2でwindowsを2台動かそうとしているんですが、 wmpiconfig.exeでapplyボタンを押しても <ホスト名> Credentials for <アカウント名> rejected connecting to <ホスト名> Aborting: Unable to connect to <ホスト名> と表示されて設定できません。 アカウント名とパスワードは2台とも同じものを設定していて、 ファイアーウォールも切っています。 pingでもお互いを認識しています。 どなたか原因分かる方よろしくおねがいしますm(_ _ )m マシン構成は winXP HOME PEN4 1.6GHz winXP PRO PENIII 800MHz です
169 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:15:01 ] MPI_Finalizeを呼んだら制御が返ってこなくなったんですが、 何か原因に心当たりのある方はおられませんか。 printf("before\n"); MPI_Finalize(); printf("after\n"); これをやったらbeforeしか表示されません。 ちなみにmpich-1.2.7@SUSELinux10.2です。
170 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 01:07:31 ] 設定がうまくいってないんだろ?
171 名前:169 mailto:sage [2007/02/27(火) 03:48:13 ] NFSで共有していないファイルから問題設定を読んでいて、 PC毎にパラメタが変わってこけていたという罠。 吊ってきます Λ||Λ
172 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:51:59 ] 並列計算に興味あるのですが、単に処理するデータを分割、各PCで計算、最後に統合するのでは なく、PC毎に別のデータを別の処理方法で行っていて、あるPCの処理結果が別の処理中のPCの処 理に割り込んで処理方法を変えるなどということは出来るのでしょうか?
173 名前:デフォルトの名無しさん [2007/03/20(火) 23:06:11 ] 自作のC++プログラムの並列化をしています。 MPI_Finalizeを呼ぶタイミングについて疑問があります。 MPI_Finalizeをmainの末尾で呼べば無事に終わるのですが、 Singletonクラスのデストラクタの中で呼んだら落ちてしまいました。 main を抜けた後に呼んではいけないでんしょうか? 環境は、MPICH2、Win XP SP2、Visual Studio 2005 です。
174 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:28:13 ] MPI_Gatherなどで、転送するデータタイプはMPI_DOUBLEなどで指定しますが、 データタイプがテンプレートに指定されたデータタイプによって変わる場合、 どのように設定したらよいのでしょうか?
175 名前:デフォルトの名無しさん [2007/05/19(土) 08:51:23 ] 平凡な方法ですが、 template<typename T> class MpiConst{}; template<double> struct MpiConst { static const int TYPE = MPI_DOUBLE; }; と特殊化をしておいてから、目的の template を作る のは、どうでしょう。 これは、MpiConstを隠蔽する改良案です。 class Base { protected: Base(); ~Base(); static const int TYPE = MPI_DOUBLE; // 以下、MpiConst の定義・特殊化 }; template<typename T> TargetClass: protected Base { ... };
176 名前:デフォルトの名無しさん [2007/05/19(土) 09:14:10 ] ↑すみません。class Base の中の static const ... の行を消し忘れました。
177 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 07:56:54 ] openmpの場合、#ifdef _OPENMPでopenmpを使ってコンパイルしている 場合とそうでない場合に別々のコードを書くことができますが、 MPIの場合はどのようにしたらよいのでしょうか?
178 名前:デフォルトの名無しさん [2007/06/09(土) 16:58:36 ] このスレではPCクラスタのシステム障害(とくにハード)について経験ある方も 少なくないと思うので、お尋ねします。 1年前に構築した16ノードクラスタ(ディスクはNFS共有、ギザイーサ)が、 最近頻繁にp4_errorを起こすようになりました。 とりあえず疑わしいところからパーツを取り替えまくったのですが、全く改善しません。 特定ノードというより全体的にパラパラと障害が発生してるので、もしやネットワークかな と思ったのですが、ネットワークに問題があるなら、rloginやsshのセッションやNFS の読み書きにも障害が出ると思うのですが、特に問題は出ていないようです。 MPIで並列したときに限って発生します。 これからネットワークの交換を検討していますが、何かアドバイス頂けいたら幸いです。 ちなみに1年間はほぼ問題なく使えており、他の計算機でも実績があるので プログラム側の問題ではないです。
179 名前:デフォルトの名無しさん [2007/06/22(金) 11:04:41 ] MPI_Finalizeを行わずに終了した場合、どのような問題が起きる可能性がありますか?
180 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:33:50 ] MPI_Finalize のソース読んだらいいんじゃね??
181 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:51:42 ] >>178 今頃気付いたが、ギザイーサワロス 巨大王墓間を高速インターコネクトで結んで世界の七不思議にでも入れたいノケ?
182 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:17:25 ] デッドロックを発生させない定石のようなものはありますか?
183 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 08:00:52 ] >>181 中川しょ(ry
184 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 15:30:14 ] >>181 日本語でおk
185 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 23:51:22 ] 巨大王墓=ピラミッド
186 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 02:15:45 ] わかんねーよハゲwww
187 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 22:45:57 ] 世界の七不思議=ギザのピラミッド他
188 名前:・∀・)っ-○◎● mailto:sage [2007/06/29(金) 02:42:04 ] ギザかわゆすwwwwwww
189 名前:デフォルトの名無しさん [2007/07/02(月) 16:57:33 ] 現在boostのuBlasを使って逆行列を解いています。 MPIを使ってさらに大規模な行列を計算させたいのですが、お薦めのライブラリを教えてください
190 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:42:39 ] どなたかPS3でmpich2やってるひといません? fedora5でひととおりmpich2をインストール、設定後に実行するとこんなんで て困ってます。 # mpirun -n 1 date mpiexec_ps3slave1 (send_dict_msg 632):send_dict_msg: sock= errmsg=:(32, 'Broken pipe'): mpdtb: /usr/local/bin/mpdlib.py, 632, send_dict_msg /usr/local/bin/mpirun, 250, mpiexec /usr/local/bin/mpirun, 1399, ? mpiexec_ps3slave1: mpd_uncaught_except_tb handling: exceptions.KeyError: 'cmd' /usr/local/bin/mpirun 255 mpiexec elif msg['cmd'] != 'response_get_mpdrun_values': /usr/local/bin/mpirun 1399 ? mpiexec() どなたか御力をおかしください。
191 名前:190 mailto:sage [2007/09/03(月) 22:06:14 ] 自己解決しました。Fedoroa 6を入れなおして、mpich2を入れなおしたら いけました。 他にps3でクラスタやってる人の例をネットなどでみていると、結構Fedora 5で やってる人がいるから、OSの違いでうまくいったというよりも、初回のmpiの インストール時の設定に問題があったのかもしれません。以上。
192 名前:デフォルトの名無しさん [2007/09/10(月) 01:30:38 ] MPIでJUnitみないなテストできんの? 知ってるひといたら教えてくれい
193 名前:デフォルトの名無しさん [2007/09/12(水) 04:50:40 ] >>192 こんなのあった 自分は使ったことないが ttps://sourceforge.jp/projects/mpiunit/
194 名前:デフォルトの名無しさん [2007/09/23(日) 03:05:43 ] >>193 つかってみたぞ いがいとべんりだった
195 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 00:57:56 ] 誰かまともなチュートリアル書いてくれよ
196 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:47:33 ] >>195 チュートリアル書きたいが どんな機能があるのがよくわからん
197 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:30:55 ] >>195 虎の巻じゃだめかね
198 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:59:38 ] >>197 虎の巻をたのむ
199 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 09:50:27 ] >>198 ttp://accc.riken.jp/HPC/training/text.html
200 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 15:07:25 ] >>199 すまねえ 193の虎の巻がほしかったんだ
201 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 00:21:40 ] >>200 パッケージの中にあるじゃん
202 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 12:28:39 ] >>201 あるけどわかりにくくない?
203 名前:デフォルトの名無しさん [2007/09/30(日) 21:15:53 ] >>200 sourceforge.jp/projects/mpiunit/wiki/Tutorial
204 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:37:27 ] もっぺん書くけどさ、 ま と も な チュートリアルが欲しいんだよ。
205 名前:デフォルトの名無しさん [2007/10/01(月) 03:36:48 ] >>204 作者に直で言うしかないな
206 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 23:01:28 ] みんなここで勉強したのかえ?
207 名前:デフォルトの名無しさん [2007/10/04(木) 21:05:22 ] 203のチュートリアルを直そうと思うんだけどここにはっていいよね? どうせLGPLだし 204氏はどんなチュートリアルが欲しいんだい?
208 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 12:19:32 ] boostにmpi入るからそれでいいじゃん
209 名前:デフォルトの名無しさん [2007/10/11(木) 00:03:40 ] だれか>>193 使った人いる?
210 名前:デフォルトの名無しさん [2007/10/17(水) 09:58:07 ] >>209 使ってるよ プログラミングの効率が上がった
211 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:55:50 ] 作者は岩手大学の学生か?
212 名前:デフォルトの名無しさん [2007/10/26(金) 21:09:07 ] AUTHORSにそう書いてあるね
213 名前:デフォルトの名無しさん [2007/11/02(金) 21:07:27 ] CentOS5.0にrpmで入ってたOpenMPIを使ってます。 $ rpm -qa |grep mpi openmpi-devel-1.1.1-5.el5 openmpi-libs-1.1.1-5.el5 openmpi-libs-1.1.1-5.el5 openmpi-1.1.1-5.el5 openmpi-devel-1.1.1-5.el5 手元にX86_64のPCが2台とi386のPCがあるのですが、 異種アーキテクチャのバイナリの自動選択はどうやってするのでしょうか? 全部i386で揃えろって意見もあるかもしれませんが、64bit整数演算をする ので64bitで動かしたいんですよね。 mpichは出来るみたいですね。 enrico.phys.cmu.edu/QCDcluster/mpi/mpirun_mpich.html というかOpenMPIはman マニュアル無くて悲しい。
214 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 15:00:58 ] Debian 4.0 etch AMD64のマシンを2台用意してMPICHで環境を整えようとしています。 2台ともデュアルコアなので、 /etc/mpich/machines.LINUX に cluster1:2 cluster2:2 と記述しています。 テストを行おうと mpirun -np 4 cpi をしてみたのですが、1分以上待ってもプロンプトが帰ってきません。しかし mpirun -np 3 cpi とするとcluster1に2スレッド、cluster2に1スレッド割り当てられ計算結果がすぐ返ってきます? 4コア使い切るためにはどうしたら良いでしょうか?
215 名前:213 mailto:sage [2007/11/07(水) 00:40:14 ] 色々試したが諦めた。次はPVMを試そうと思う。
216 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:28:47 ] SuSE Linux9.3 mpich-1.2.7p1 gcc, pgi 7.1 を使用していますが、emacsでmpiデバッグできませんかね。 gdbとpgdbgを使ってデバッグできますが、 pgdbgは使いにくいし、gdb単体も使いにくいので、できれば emacsからgdbを起動したいなと。
217 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 13:26:16 ] PVMってまだ使われてるの?
218 名前:213 mailto:sage [2007/11/07(水) 14:06:12 ] >>217 しらんけど、CentOSに標準でパッケージが入ってたよ。
219 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 15:42:53 ] >>213 ローカルマシンに同じ名前のディレクトリを作る。 そこに機種毎のバイナリを置く。 これで桶。
220 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 15:44:35 ] >>219 補足。 機種毎のバイナリは同じ名前で作っておく。 mpirunはデフォでは同じ名前のユーザーの同じ名前のディレクトリにある 同じ名前のコマンドを実行するだけなので。
221 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 15:59:06 ] >>218 標準で入ってるんだ 昔はPVMが主流だったそうだけど、今はほとんどがMPIだよね
222 名前:213 mailto:sage [2007/11/08(木) 00:36:34 ] >>219 ありがとう。しかしPVMのマニュアルをせっかく読み始めたので こっちで行ってみます。MPIは出鼻をくじかれたので気に入らない。
223 名前:214 mailto:sage [2007/11/10(土) 21:37:30 ] /etc/mpich/machines.LINUX の localhost:2 cluster2:2 となっていたのを cluster1:2 cluster2:2 にしたらいけました。3スレッドはできるので machines.LINUXは悪くないと決め付けてました。
224 名前:デフォルトの名無しさん [2007/12/12(水) 06:13:16 ] MPIの並列計算で困っています。アドバイスお願いいたします。 ・4CPU/共有メモリの計算機でMPIによる並列計算を行っています。 しかし ・この計算機の場合、計算実時間が1CPUで計算している場合よりも 大幅に増えてしまいます。 (大学の大型計算機等で計算した場合、計算実時間は4CPUの場合、 1CPUの1/3.4ぐらいに短縮されますのでプログラム的には問題ないと考えています。) ・top コマンドで計算状況を監視していると、使用CPUが変動し、しばしば 同じCPUを2つのスレッドで競合しているようです。 ・使用CPUの数をいろいろと変えてみましたが必ず競合してしまうようです。 ・従って時間計測コマンドでCPU時間を測定すると、 下記のようにCPU時間は短縮されているが、実時間は増えてしまうという結果になるようです。 real time 1000.0 user time 250.0 ・計算機を納品した会社(H○C systems)に質問したところ、 設定は問題はない。プログラムの問題、あるいは通信時間がかかってしまうので 実時間が増える、といういい加減な返答しかきません。 似たような症状を経験したことのある方、対処法をご存知でしたら 教えてもらえないでしょうか。
225 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 07:08:53 ] sched_setaffinity(2) を使うと幸せになれるかも。
226 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:48:26 ] >>224 MPICHならconfigure時に --mem=shared を付けて構築すべし 通信が共有メモリを介したものになる(異ノード間は当然sshやrsh経由)。 実行時に ps -x してsshやrshでプロセスが起動してたら、わざわざ同一計算機内でTCP/IP通信しちゃってるので損。 OSやコンパイラに付属のMPICHはsharedで構築されていない例が多いので自分で構築してみよう。
227 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:59:25 ] 4CPU/共有メモリって、いわゆる普通のマルチプロセッサのことだよね 今時シングルコアはないから、2コアの2CPUなんだろう
228 名前:デフォルトの名無しさん [2007/12/28(金) 20:38:39 ] みなさまご助言ありがとうございます。 >>225 検索すると状況としてはこれが当てはまる感じなのですが、 私には使い方がよく分かりません。 詳しいサイト等ありましたら教えてもらえないでしょうか。 >>226 確かにps x コマンドで確認すると(ノード内の場合でも) rsh が動いていました。 このコンピュータはMPIのインストール及び設定済みのものを 購入したのですが、業者がいいかげんということなのでしょうか? 複数ノード構成なのですが、この場合はどうなのでしょうか 業者の説明では例えば、machinefile に node00:2 とすればSMPとなるとのことでした。 node00 node00 とすれば通信が発生するとのことでした。 >>227 シングルコアのItanium2:4CPUx4ノードの構成です。 (年度でわけて増設して購入したのでちょっと古いCPUになっています) 納品されたのは1年以上前なのですが、不具合ばかりです。
229 名前:225 mailto:sage [2007/12/29(土) 00:39:48 ] こんな感じ。 #include <mpi.h> #include <sched.h> #include <stdio.h> int main(int argc, char *argv[]) { int rank; cpu_set_t mask; double t; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); __CPU_ZERO(&mask); __CPU_SET(rank, &mask); if (sched_setaffinity(0, sizeof(mask), &mask) == -1) { perror("Failed to set CPU affinity"); goto error; } t = MPI_Wtime(); while (MPI_Wtime() - t < 10 + rank * 5) ; MPI_Finalize(); return 0; error: MPI_Finalize(); return -1; }
230 名前:225 mailto:sage [2007/12/29(土) 00:46:50 ] >>229 のプログラムは各プロセスが (10 + rank * 5) 秒後に終了する。 sar コマンドを使って、例えば > sar -P ALL 1 1000 とやると各プロセスがランクと同じ番号の CPU で走り続けてランク順に終了していく様子が観察できる。 参考にしたページ:d.hatena.ne.jp/naoya/20070824/1187945715
231 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:31:33 ] >>226 の書き込み見て、--with-comm=shared というオプションをつけてMPICHを コンパイルしてみたんだけど、逆に遅くなりました。共有メモリのほうが早く なると思うんですけど、どうしてだろう? CPUは Core 2 Quad 2.4GHz を使っています。
232 名前:デフォルトの名無しさん [2008/01/09(水) 01:43:00 ] GridMPIについて、質問です。 GridMPIのMPI関数は、通信先によって、リモートノードなら、IMPI、 自ノードなら自ノード内のMPI(ベンダMPIなど)を呼び出して通信 するはずですが、GridMPIが提供しているMPI関数と(自ノードの) ベンダMPIの関数のシンボルが重複しないのはなぜでしょう? (最初は、GridMPIから発行するベンダMPIの関数は、MPI関数では なく、PMPI関数と思っていましたが、これは違いますよね・・・)
233 名前:デフォルトの名無しさん [2008/01/10(木) 00:07:05 ] MPICH1.2.5について質問です。 MPICHのブロードキャストはTCPを用いて行われているようなのですが、 UDPによるブロードキャストを使用することはできるのでしょうか? ご存知の方がいらっしゃれば、よろしくお願いします。
234 名前:デフォルトの名無しさん [2008/01/11(金) 10:27:42 ] 普段はPVMでプログラミングをしているのですが、MPIでは 1.スレーブ(MPIでもこういう表現するんですかね)のマシンに 計算領域を割り当てて計算させる ↓ 2.マスタに計算結果を返す ↓ 1と2を繰り返す という流れはどういう風にソース上で実現させているのでしょうか。
235 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:48:46 ] >>234 スレーブとか言いません。 全く同じプログラムが複数走ります。 主従はなく、皆平等です。 MPI_Comm_rank関数を呼び出すと自分のノード番号がわかるので、 その番号に応じた振舞いをするようにプログラムを書きます。 たとえば、0から100までの足し算を2台の計算機でするときに、 ノード番号0なら0から49まで、ノード番号1なら50から100まで計算するようにしておきます。 通信は送信したいノード番号に向けて送信し、受信したいノード番号を指定して受信します。
236 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:56:17 ] WindowsCCSでHPLのベンチ取りたいんだけど参考になるwebとかありませんか?
237 名前:デフォルトの名無しさん [2008/01/13(日) 11:21:47 ] >>235 そうやるんですか PVMで同じようにする方法がさっぱりわからんもんで 参考になるかな、とは考えたのですが・・・
238 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:13:34 ] PVMってまだ使われてるのか?
239 名前:デフォルトの名無しさん [2008/02/07(木) 17:31:34 ] おーい、このスレ生きてますか? 質問です。 class base { ... }; class derived1: base{ ... }; class derived2: base{ ... }; があって、 vector<base*> v; にノード0で v.push_back(new derived1()); v.push_back(new derived2()); ... などとして配列を作ります。 で、作った物を他のノードに配信したいのですが、どうやれば良いでしょうか? newで生成したderived1などのオブジェクトも一緒に配信したいわけで、単純にvのバイト列を送れば良いというわけには行かないわけで。 実際にはderived1等にもnewしたオブジェクトのポインタが存在して、それも他のノードで再現したいわけで...
240 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:19:40 ] 死んでます
241 名前:239 mailto:sage [2008/02/07(木) 20:05:46 ] 死んでるのかよ! って、まあ置いといて、STLのstringなんかもオブジェクトのバイナリ丸コピじゃだめなんだよな。 ヒープからバッファ取ってるから。 となると、シリアライズして送信、受信側で再構築なんだろうけど、正直面倒臭いな。
242 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 05:39:37 ] MPI_File_xxでテキストファイルは扱えないのでしょうか?
243 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 23:33:27 ] 学科の演習用端末更新終わった〜 Linux / Cele 420 / MEM 2GB / 26台 /hdd less という構成なんだが、手軽に遊ばせるMPIのサンプルないかな? ちなみに、午後6時に強制shutdownの設定になってるので、 長くても8時間程度のジョブの奴を頼む。
244 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 08:12:50 ] MPIプログラムによってネットワークがどのくらい使用されているかは、どのようにしてわかりますか? 環境はFedora8+Intel C++ 10です。
245 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 13:32:00 ] Windows用のものはありませんか?
246 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 15:00:58 ] MPICHにWindows版があるyp!
247 名前:デフォルトの名無しさん [2008/04/17(木) 17:12:34 ] プログラムをコンパイルし実行するとsignal 6というエラーが出るのですが、これはどのようなエラーなのでしょうか?
248 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 18:43:41 ] どっかでabort()してるんじゃないの
249 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 21:06:07 ] MPIにおけるシグナルの使い方は実装依存なのじゃ。 同じエラーが出るミニプログラムを作ってうp汁
250 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:04:00 ] NPACI Rocksつこうてる人おる? どこのスレいけばいいか解らんくて 迷子してる
251 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:38:11 ] 計算の進行状況をファイルに書いてたのだが、 ファイルがバッファリングされる関係で リアルタイムで更新されないので、fflushを つっこんだら、計算時間が倍になったぞ。 こういうのは難しいなぁ。
252 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 06:37:45 ] >>251 NFSとかSambaでリモートのファイルシステムに書いてない? ローカルの /tmp あたりに書くようにすると速くなるかも。
253 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:17:59 ] というか、頻繁に確認しない限りそんな遅くならないんじゃないの?
254 名前:251 mailto:sage [2008/05/23(金) 00:45:22 ] >>252 リモートファイルシステムです。 多分それで速くなると思いますが/tmpとか勝手に 使ったら怒られそう。大学共同利用のシステムなんで。 >>253 かなり頻繁に更新してますた。数秒に1回ぐらい。 進行状況を書いてただけなので、flush頻度を1/100 にしたら速度がだいたい元に戻りました。
255 名前:デフォルトの名無しさん [2008/05/23(金) 01:30:25 ] >>254 普通の大学の計算機センターならローカルディスクぐらい用意してるよ。 聞いてみな
256 名前:251 mailto:sage [2008/05/24(土) 18:29:49 ] 計算の進行状況をlogに書くってのも一歩間違うと大変な事になるな。 計算で64bit Intetgerを使って、桁あふれ(2^64)が起きたら 「SKIPしますた」とlogファイルに書いて次ぎのデータ処理に入る ようにしてたんだ。 今まで深さ4の処理をしてたんだが桁あふれが起きてなかった。 次に深さ5の処理に入ったんだ。とたんに桁あふれが増えて 「SKIPしますた。」でdisk使用制限が超えそうになっちまった。 テラヤバスで、20時間実行したjobを強制停止… >>255 いや、他大学システムなんで、あまりくだらない質問したく なくて。利用料金も私が出したんじゃなくて、教授のだし。
257 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:24:36 ] MPICHのMPI_Finalizeって常時ポーリングしてんのかな? 処理が終ってFinalize待ちのプロセッサの負荷が100%になってやがる。 割り込み使ってくだちゃい。
258 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:52:46 ] 負荷100%といえば、 rank=0のタスクをjobのマネージメントだけにつかって rank=1以降を計算に使うプログラムを書いた。 rank=0とrank=1以降でも大してCPU使用率がかわらん かった。rank=0のタスクはMPI_RECVで待機してただけ なんだがな。
259 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:58:08 ] MPIで複数のCPUを使って計算させたときに、計算の速さ(結果)を秒数などで表示する 何か良いプログラムは無いでしょうか? 姫野ベンチやHPLだと、結果がFLOPSでしかでないので分かりにくいと言われ 体感的(秒数なもの)にわかるものにしてほしいと(´・ω・`) 思いつく簡単なベンチマークを例であげると、例えばスーパーπの104万桁を2つのCPUで 計算した場合は○○秒かかったけど、4つだと○秒だったよ!という感じです。(ベンチマーク じゃなくてもいいです。) よろしくお願いします。
260 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:17:57 ] >>259 自分で秒数に戻せばいい。そもそも計算速度(flop/sec)というのは 計算速度=計算量÷計算時間 として求めている。 計算量(浮動小数点演算の回数)はプログラムによって決まる。 ベンチマークプログラムなら解説文書に計算量が書いてあるはず。 計算量と計算速度が分かれば当然ながら 計算時間=計算量÷計算速度 で秒数が分かる。
261 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 01:48:01 ] >>260 アドバイスありがとうございます! なるほど! そういう風に求めるのですね。 助かりましたm(__)m
262 名前:デフォルトの名無しさん [2008/06/21(土) 10:55:46 ] time mpirun -np 3 aho & でいいじゃん。 各ノードごとの時間を知りたければ mpirun -np 3 time aho & でできるぜ
263 名前:259 mailto:sage [2008/06/26(木) 17:15:29 ] >>262 timeを使えば計算時間分かりますね! アドバイスありがとうございますm(__)m すいません。色々アドバイスを頂いたのですが何かオープンキャンパスで 高校生の方たちにクラスタを使ってもらうらしく姫野ベンチとかだと流体 の計算なので何を計算しているのかイメージが付きにくいんじゃないか? と、言われまして何かイメージが付きやすいプログラムというのは無い でしょうかね・・・? すいません、変な質問をして(汗
264 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:30:47 ] >>263 計算結果を可視化するところまでやるとか。 でも見た目が楽しい計算結果でないと訴求力がないだろうねえ。 あるいは利用ノード数(並列度)を変えて実行時間の変化をグラフにして 並列度の高いクラスタのありがたみ(速度向上)を訴えるとか。
265 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 01:51:51 ] >>263 迷路。 ノードごとに探索経路を色分けすればぐー
266 名前:259 mailto:sage [2008/06/27(金) 11:53:25 ] >>264 >計算結果を可視化するところまでやるとか。 >でも見た目が楽しい計算結果でないと訴求力がないだろうねえ。 そうなんですよね〜 分子力学のプログラムで計算結果を可視化できるものがあったんですが リンク切れとソースの名前をググっても出てこなかったので諦めました・・・。 >あるいは利用ノード数(並列度)を変えて実行時間の変化をグラフにして >並列度の高いクラスタのありがたみ(速度向上)を訴えるとか。 なるほど。理想値と実際に計算にかかった時間をグラフに書いてもらえば オーバーヘッドの事や何倍速く計算できたかと言う事が分かりやすいですね! アドバイスありがとうございますm(__)m >>265 >迷路。 すいません。 迷路というのは迷路を解くと言う事でしょうか?
267 名前:デフォルトの名無しさん [2008/08/22(金) 20:08:51 ] すいません MPI初心者です。 windowsでMPIを実行しようとしているんですけどエラーがでて困っています。 インクルドのパスは切っています。 error C2653: 'MPI' : 識別子がクラス名でも名前空間名でもありません。 error C3861: 'Init': 識別子が見つかりませんでした というエラーがでます。 なんで何でしょう。いきなり初期設定でつまずいて恥ずかしいのですが だれかアドバイスしていただけないでしょうか。
268 名前:デフォルトの名無しさん [2008/08/23(土) 08:45:51 ] >>267 それで他人になにか状況が伝わるとでも?
269 名前:デフォルトの名無しさん [2008/08/23(土) 18:49:31 ] C:Program Files\MPICH2\lib C:Program Files\MPICH2\include を追加する。 最低これでエラーはなくなるはずのに認識できない。 メッセージは同様。 error C2653: 'MPI' : 識別子がクラス名でも名前空間名でもありません。 error C3861: 'Init': 識別子が見つかりませんでした 絶対windowsで同様なエラーが出ている人がいるはず。 MPICH2はwindowsでは無理なのか?
270 名前:デフォルトの名無しさん [2008/08/23(土) 21:20:54 ] >>269 それで他人になにか状況が伝わるとでも? ソースくらい出せ。 コンパイルオプションくらい出せ
271 名前:デフォルトの名無しさん [2008/08/23(土) 21:22:39 ] windowsでMPICH2は「余裕で」動いてる。
272 名前:デフォルトの名無しさん [2008/08/24(日) 14:46:18 ] わかりました。 ウィザードで作った雛形をつかってコピしていたからみたいです。 空のディレクトリをしてしてファイル追加してみるとできました。 ご声援ありがとうございました。何の役にもたたなかったけど(w
273 名前:デフォルトの名無しさん [2008/08/24(日) 20:32:38 ] >>272 何の役にも立たないのは、お前がなんら情報を出さないからだろ。 自分の低能を棚上げしてイヤミで〆か。 新打法がいいね。
274 名前:デフォルトの名無しさん [2008/08/25(月) 17:29:10 ] >>273 野球していたが打てなかったので1本足打法に変えました。 するとよく打てるようになりました。 そして解説者に言われました。 新打法がいいね。
275 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:55:04 ] 自分の考えを人間にすら伝えられないバカは 自分の考えをコンピュータに伝えられるわけがない。 プログラムなんてやめた方がいいよ。
276 名前:デフォルトの名無しさん [2008/09/16(火) 08:21:40 ] OpenMPIってVistaじゃ使えないの?
277 名前:デフォルトの名無しさん [2008/09/17(水) 03:03:50 ] なんか荒れてる…w MPICH2いれてBoostのMPI使おうかと思ったが うまくいかね using mpi ; をusr-config.jamに書いたが パスが通ってないと言われる… いい解説サイト知っていたら教えてくださいませ
278 名前:デフォルトの名無しさん [2008/11/01(土) 04:35:50 ] MPI対応のFFTで、2次元の場合はタイル状に、3次元の場合はブロック状に、 データ分割可能なもの知りませんか? fftwやFFTEのMPI版は短冊形(z方向分割)にしか対応していません。
279 名前:デフォルトの名無しさん [2008/12/01(月) 12:33:58 ] ちょっと質問なんですが MPI_Sendrecvってペアじゃないと使えないですかね? 片方がMPI_Sendrecv もう一方がMPI_SendだけとかMPI_Recvだけとか。 わかる方いたらご教授願いたいのですが。
280 名前:デフォルトの名無しさん [2008/12/04(木) 16:33:04 ] シングルノードWinXP-Proの環境で、MPICH2に付属ので例題cpi.exeを実行してみたら動きませんでした。 エラーメッセージは特になく、タスクマネージャで確認するとCPUコア数分のcpi.exeが実行中であるのが 確認できるのでが、強制終了する以外コントロールできない状況です。MPICH1ではうまくゆくのですが。 どなたかご教示のほうよろしくお願いします。