1 名前:デフォルトの名無しさん [04/11/07 18:25:56] MPIによる並列プログラミングについて話し合う統合スレッドです。 とりあえず本家 www-unix.mcs.anl.gov/mpi/
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ではうまくゆくのですが。 どなたかご教示のほうよろしくお願いします。
281 名前:デフォルトの名無しさん [2009/01/13(火) 08:26:39 ] MPI初心者です。MPICH2をMacOSXにインストールしました。 とりあえず以下のコードを実行しました。 $ mpicc test.c $ mpiexec -n 3 ./a.out #include <stdio.h> #include "mpi.h" int main(int argc, char **argv){ int nprocs; int mype; int proc_name_len; char proc_name[40]; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &mype); MPI_Get_processor_name(proc_name, &proc_name_len); printf("My name is : %s\n", proc_name); MPI_Finalize(); } すると、結果は My name is : tetsuya-sato-macbook.local My name is : tetsuya-sato-macbook.local My name is : tetsuya-sato-macbook.local となりました。全処理が自分の端末で実行されてしまっているということでしょうか。環境設定がうまくいっていないのでしょうか。 一応、自分の端末からssh経由でログイン出来るLinux端末が10台あるので、自分の端末のホームディレクトリ配下に mpd.hostsファイルを作成してそれら10台のマシンのホスト名を記述しました。次に、自分の端末で $ cd ~/.ssh $ ssh-keygen -t rsa $ cp ida_rsa.pub authorized_keys2 としました。それから、このauthorized_keys2ファイルをsshでログイン出来るLinux端末10台の ~/.ssh/配下にSCPにてコピーしました。この先、何をやればよいでしょうか?
282 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:08:03 ] machinefile または hosts でいけるんじゃないか mpiexec -machinefile mpd.hosts -n 3 a.out www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.0.8-userguide.pdf
283 名前:281 [2009/01/15(木) 03:39:43 ] >>282 有り難うございます。出来ました。 別の質問なのですが、以下のコードを実行すると、結果は順不同で出力されます。 #include <stdio.h> #include <stdlib.h> #include "mpi.h" int main(int argc, char **argv){ int nprocs; int mype; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &mype); printf("proc番号は : %d\n", mype); MPI_Finalize(); } <結果> proc番号は : 0 proc番号は : 2 proc番号は : 1 これを必ず昇順の0、1、2のランクの順に出力したい場合はどう修正すればよいでしょうか?
284 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 10:36:11 ] >>283 別々のプロセスが勝手に出力を出しているのでそうなる。 ノード0 出力が終わったらノード1に何か情報を送る ノード1 ノード0空の受信を待った後、画面に出力。その後ノード2に情報を送信 ・・・ という感じにするか、あるいはノード0に角ノードが出力したい情報を送りつけて、出力は全部ノード0でやるか。
285 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 14:13:53 ] 最初の頃に買った本紹介しとくよ www.amazon.co.jp/dp/456301544X/ www.amazon.co.jp/dp/4621047736/
286 名前:281 [2009/01/16(金) 09:59:35 ] >>285 どっちか一冊買ってみます。 >>284 こんな感じにしたのですが、順番に出力されません。書き方、まずいでしょうか? #include <stdio.h> #include <stdlib.h> #include "mpi.h" int main(int argc, char **argv){ int nprocs; int mype; int dummy; int i; int tag=0; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &mype); for(i=0; i<nprocs-1; i++) { if(mype==i) { printf("My proc is : %d\n", mype); MPI_Send(&mype, 1, MPI_INT, i+1, tag, MPI_COMM_WORLD);} if(mype==i+1) { MPI_Recv(&dummy, 1, MPI_INT, i, tag, MPI_COMM_WORLD, &status);} } if(mype==(nprocs-1)) { printf("My proc is : %d\n", mype);} MPI_Finalize();} <実行> mpirun -np 5 -machinefile mpd.hosts ./a.out
287 名前:デフォルトの名無しさん [2009/01/16(金) 11:11:50 ] >>286 それ、最終ノードが受信してなくね? printf後にfflushするといいかも それとループするより素直に ノード0 表示 送信 ノード 1...n-1 受信 表示 送信 ノード n 受信 表示 でバラして書いた方が見やすいと思う。 同じコードをたくさん書きたくなければ、受信、送信のところを条件分けで囲ったものの間に共通の表示処理を入れるか。
288 名前:デフォルトの名無しさん [2009/01/30(金) 11:49:31 ] One of the processes started by mpirun has exited with a nonzero exit code. This typically indicates that the process finished in error. If your process did not finish in error, be sure to include a "return 0" or "exit(0)" in your C code before exiting the application. PID 13373 failed on node n0 (1**.1**.**.10) due to signal 9. とエラーが出ます。 パック、アンパックを利用して、何度も送受信出来ているんですけど、 5000回程度繰り返したところでエラーがでます。 考えれる原因などありますか?
289 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:45:55 ] >>288 プログラムのどっかでreturn 0かexit(0)してんだろ
290 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:40:48 ] 質問 コンパイルすると"libmpi_c.so.0"なり"libmpi_cxx.so.0"が No such fileって言われるんだけどこれはどう解決すればいいですか?
291 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:51:35 ] MPIみたいな、少なくとも大学院クラスの人間が数値解析で使うもののスレにしては エスパーを要請する質問が多いな。 そんな表現能力じゃ論文もかけないだろ。