1 名前:デフォルトの名無しさん [04/11/07 18:25:56.net] MPIによる並列プログラミングについて話し合う統合スレッドです。 とりあえず本家 www-unix.mcs.anl.gov/mpi/
446 名前:デフォルトの名無しさん [2010/04/14(水) 10:18:20 .net] ubuntu9.10にOpenMPIをapt-getでインストールしました 。 インテルコンパイラを使うには、apt-getではなく、自らコンパイルしないといけないのでしょうか? 何か設定で切り替える方法があれば教えてください
447 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 01:33:13 .net] arkouji.cocolog-nifty.com/blog/mpich2/index.html ここの通りにやってサンプルを使った 円周率の計算まではできたんですけど 自分で書いたC, C++を動かすことができません とりあえずプロジェクトをいじってるんですがそれでいいんでしょうか? 何か留意点などありますか?
448 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 01:39:49 .net] windows版のmpichはmingw gccでもリンクできるからgccで作った方が早い。 mpi自体の設定もLinuxの方が簡単。
449 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 10:35:03 .net] 最近勉強を始めました。 並列クイックソートを実装しようとしているのですが、実行時にエラーが出てしまいます。 とりあえず2個のプロセッサでやってみてるのですが、いったいどこがいけないのでしょうか? codepad.org/13tw3pKS アドバイスお願いします。
450 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:58:42 .net] >>446 で、技術料はいくら払うんだ?
451 名前:デフォルトの名無しさん [2010/04/30(金) 06:33:21 .net] $200
452 名前:デフォルトの名無しさん [2010/05/10(月) 05:36:11 .net] OpenMPIとMPICH、どちらをインストールしたらよいのでしょうか それぞれの利点欠点を教えてください
453 名前:デフォルトの名無しさん [2010/06/12(土) 19:14:06 .net] MPICH2 1.0.7rc1 + g95 + cygwin の環境下で、以下のようにバックグランド実行させているのですが、 >nohup mpiexec -np 4 ./a.out >& log.txt & 標準出力(log.txt)に下記のようなメッセージが大量に書き込まれてしまいます。 これを表示させない方法はないでしょうか? (handle_stdin_input 1067): stdin problem; if pgm is run in background, redirect from /dev/null (handle_stdin_input 1068): e.g.: mpiexec -n 4 a.out < /dev/null &
454 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 23:35:54 .net] >>450 メッセージに書かれている通りのことをやればいいだけ
455 名前:デフォルトの名無しさん [2010/06/13(日) 04:24:41 .net] >>451 ありがとうございました。確かに入力用にこれを指定すると出なくなりました。 しかし普通に入力ファイルをしていた場合は入力ファイルが読めずに、エラーが出たので、 このようにしたのですが、それはマルチノードの設定の問題でしょうか。
456 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:55:37 .net] 何をやったらどんなエラーが出たのか書けよ
457 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 22:05:53 .net] PhenomII x6 1090Tを3.2GHzから4GHzにOCして、MPIでバカ並列の数値計算 プログラムを走らせて 使ってたのだが、速度が出ないので調べてみた。 殆どOn cacheで動くプログラム、キャッシュミスが無いようなプログラムなのに、 計算に使うコア数を減らすほど速くなる事に気がついた。3コアで最高速。 ふと、OCやめて定格に戻したら、まともな速度が出るようになった。 なんてこった。どうやらOCで逆に遅くなる事があるようだ。 OCする場合とOCしないときと速度比較してみる価値あるかもよ。
458 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 22:47:52 .net] MPI使った計算なんて遊びじゃないんだからOCなんて普通しねーっての
459 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 23:29:08 .net] まぁそうだな。奇特な人向けの情報です。
460 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 19:01:17 .net] 遊びじゃないのにOCするのってダメなのかな 通常のOCのリスク(熱・故障等)以外に、結果が狂うとかある?
461 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 00:53:44 .net] >>457 狂った事あるよ。 デカイファイルが出力されるプログラムを実行させてたときに ./a.out | gzip > out.txt.gz とかやってたんだが、out.txt.gz をgzip -d で解凍させたら壊れて ますとエラーが出たので気が付いた。OCでgzipがまともに動作し なかった模様。多分計算結果も壊れてたんだろうな。 てかgzipで圧縮してなかったら計算結果が壊れてる事に気がついて なかった罠。
462 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 01:00:23 .net] いやしかし、そろそろMPIに厳しい時期になりましたなぁ。 そろそろ10月まで止めるかなぁ。電流計で測ると11A使っている から1100Wの電熱器付けているようなもんだからなぁ。
463 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 14:37:03 .net] >>459 台数を6台から1台に減らしたんだが、最適化に尽力したら、2倍速くなった(w (一台あたりの話) 作業配列をunsignedからunsigned charにしただけで、1.2倍。 昔のCPUは1byteアクセスはペナルティ高かったような… PentiumPro ぐらいの話だが。最近はペナルティ無いのか?
464 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 19:12:52 .net] コンパイラや最適化の影響があるかも知れない。 単純にはインテルコンパイラ使ってSSE吐いているならその部分は4倍速くなってるはず。
465 名前:460 mailto:sage [2010/07/10(土) 23:39:18 .net] >>461 単純にメモリ利用量が減ってキャッシュの効きがよくなっただけだと思います。 CPUがPhenom II 945だしインテルコンパイラーつかえねー
466 名前:460 mailto:sage [2010/07/12(月) 23:52:31 .net] 最適化を推し進めていくと、inline命令の逆のnoinline命令が欲しくなるな(gccは拡張機能であるがANSI Cとして欲しいね) コンパイラの最適化レベルを上げるとホットスポット内にある、めったに呼ばれない関数までinline展開されてループ内のマシン語が大きくなってしまう。 また、ifでの条件分離の確率をプログラマーが指定したくなるな。。これはコンパイラーの機能ではどうにもならなかったので、制御構造を変更するしかなかった。こういうのはコンパイラ変更したら無意味になりそうでいやーん。 マシン語がどういう形で展開されているかは、素直に読むとなかなか辛いので、以下のようにasm文で適当にLABEL文を埋め込んでいけばいい。 --- asm(".HOGEHOGE_START:"); for(i=0; i < MAX; i++){ hogehoge;} asm(".HOGEHOGEEND:"); -- そして-save-tempsでマシン語をファイル(hoge.s)に出力させればいい。マシン語のC++の関数名は奇妙奇天烈な名前に変換されるが、c++filtで復元出来る。 $ cat tmp.c void test(int hoge){} $ g++ tmp.c -c $ nm tmp.o 00000000 T _Z4testi <- 謎の関数名 U __gxx_personality_v0 $ nm tmp.o | c++filt 00000000 T test(int) <- 関数名を復元 U __gxx_personality_v0
467 名前:デフォルトの名無しさん [2010/07/14(水) 03:12:44 .net] >>458 そんなこともあるんですか あまり欲張らないでおこう
468 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 16:19:27 .net] MPIを使わずに馬鹿並列をする簡単なフレームワークないですかね? MPIをインストールするのめどい。 やって欲しい事は、32coreのマシンと、数千個のファイルがある。 .a.outにこのファイルを一つづつ渡して実行してほしい。処理が終 わったら続いてファイルを渡して処理をして欲しい。同時に32個 のa.outを実行しつつ、処理が終わったa.outがあったら残りの ファイルをa.outで処理してほしい。
469 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 16:24:10 .net] ↑ それぞれのa.outは処理時間が一定ではありません。
470 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 00:26:56 .net] 妥当なところはOpenMPかな。 #pragma omp parallel for schedule(dynamic,1) for( int i = 0 ; i < 1000 ; ++i ) { char filename[100]; sprintf(filename, "file%03d.dat", i); process(filename); } 結構適当に書いたけど、こんな感じ?
471 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 22:00:42 .net] ありがとうございます。OpenMPでそんな事ができるんですね。 gccも4系はサポートしているみたいですので、試してみます。
472 名前:デフォルトの名無しさん mailto:sage [2010/08/07(土) 11:07:24 .net] この辺でもみてくださいな。 一見正しく動いていても、OCで遅くなったり計算間違ったり ttp://hibari.2ch.net/test/read.cgi/tech/1099819556/454 ttp://hibari.2ch.net/test/read.cgi/tech/1099819556/458
473 名前:デフォルトの名無しさん [2010/09/12(日) 06:01:26 .net] 465-466 で処理量が一定でないとの事だから、 >>467 さんの schedule(dynamic,1) は必須だね。これがなくてもちゃんと動くだろうけど、かなり能率は落ちるハズだ。 頑張ってね〜。
474 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 18:04:08 .net] MPI導入の話なのですが… MPICH2のmpdbootを失敗した際に出る(handle_mpd_output ***)のまとめサイトのようなものを探しております。 日本語か英語のサイトで見たことあるという方、教えていただければ嬉しいです。
475 名前:デフォルトの名無しさん [2010/10/12(火) 03:47:24 .net] MPIでコンパイルしているかどうかをコンパイル中に#ifdefで判別したいのですが、 どれがdefineされているかを調べれば良いのでしょうか?
476 名前:デフォルトの名無しさん [2010/10/22(金) 10:35:24 .net] Ubuntuでintelコンパイラを使ってMPIプログラムをコンパイルしたいのですが、 apt-getでopenmpiをインストールした後、使用するコンパイラをgccからiccに変更する 方法がわかりません。 やり方を教えてください
477 名前:デフォルトの名無しさん mailto:sage [2010/10/24(日) 02:32:25 .net] www.google.co.jp/search?q=ubuntu+icc&ie=utf-8&oe=utf-8 なるほど分からん
478 名前:デフォルトの名無しさん mailto:sage [2010/10/24(日) 02:44:51 .net] gcc -E -dM -xc /dev/null 定義済みマクロ wikiwiki.jp/redstrange/?%C4%EA%B5%C1%BA%D1%A4%DF%A5%DE%A5%AF%A5%ED __MPI __OPENMP
479 名前:デフォルトの名無しさん [2010/11/11(木) 06:38:52 .net] ご存知の方教えてください。 MPIの各ノードのコンパイラが違っても、コンパイラに依存したソースでなければ動作しますか? よろしくお願いします。
480 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 10:15:27 .net] なんか答えにくい質問だなぁ・・ たとえば x86 なCPU で linux 上で、とかなら .o ファイルかき集めて最後にリンクできて・・なら、 たぶんだけど意図したとおりに動くんじゃないかな? コードはあげないけど中間ファイルならあげるよ、という人たちから いろいろもらって一まとめで使う、とかなの?
481 名前:デフォルトの名無しさん [2010/11/12(金) 14:02:34 .net] >>477 すみません質問がいい加減すぎました。 ノード1がCygwinでgcc_4.3.4を使っていて、 ノード2がUbuntuでgcc_4.4.4を使っています。 CPUはともにx86系です。 このようなときに、 MPIはコンパイラが異なることを気にせずにプログラムを動作させることができるかどうか知りたいです。 よろしくお願いします。
482 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 15:38:08 .net] mpirun mpiexec の気分次第w まあ、動くかと。 gcc と intel は割と相性イイから インテルも混ぜてあげよう
483 名前:デフォルトの名無しさん [2010/11/15(月) 18:12:22 .net] MPICHを使っています。各プロセスに環境変数(具体的には$HOME)を渡したい のですが、どうすればよいでしょうか。 Windows版の場合には、mpiexec(のみ)が提供されていて、 mpiexec -env HOME <somewhere> -np ... とすればできますが、 Linux版では、mpirunが提供されているが、mpirunには環境変数を指定する オプションがないので、できなくて困っています。なお、インストールには YaSTを使い、 mpich-1.2.7p1-214.3.i586 mpich-devel-1.2.7p1-214.3.i586 を入れました。
484 名前:デフォルトの名無しさん mailto:sage [2011/01/13(木) 13:07:41 .net] >>480 bashrcに書けばいいんじゃない?
485 名前:デフォルトの名無しさん [2011/01/26(水) 19:07:42 .net] 行列行列積のやり方が全くわかりません A×B=Cで各プロセスがAとBのブロック行(ブロック行の行数は行列全体の行数/プロセス数)を保持している。 Bをプロセス間で循環させ、計算結果のCを更新していくことでA×Bを計算せよ。 行列は正方行列で1024×1024とし、プロセス数は行数の約数とする。値は乱数で決める。 誰がやり方教えて下さい。プログラムの流れとかでも良いです。お願いします。
486 名前:デフォルトの名無しさん [2011/02/09(水) 18:08:03 .net] A B 000 333 111 444 222 555 rank0 rank1 rank2 step1 000 333 --- --- --- --- --- --- 111 444 --- --- --- --- --- --- 222 555 step2 000 --- --- --- --- 333 --- 444 111 --- --- --- --- --- --- 555 222 --- step3 000 --- --- 333 --- --- --- --- 111 --- --- 444 --- 555 --- --- 222 ---
487 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 13:51:12.10 .net] mpich2-1.3.2、4nodesでプログラムを並列実行しようとすると Fatal error in PMPI_Barrier: Other MPI error, error stack: PMPI_Barrier(476)..................: MPI_Barrier(MPI_COMM_WORLD) failed MPIR_Barrier(82)...................: MPIC_Sendrecv(161).................: MPIC_Wait(405).....................: MPIDI_CH3I_Progress(150)...........: MPID_nem_mpich2_blocking_recv(1074): MPID_nem_tcp_connpoll(1663)........: Communication error とエラーが出てしまい実行出来ません。検索しても有効な解決策が見つかりませんでした。 どなたか解決策を教えていただけないでしょうか?
488 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 04:09:40.08 .net] Intel mpi(impi)使ってる人います? 自分でコンパイルしたのより速い?
489 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 23:53:44.81 .net] そりゃ人間がコンパイルするより速いだろ
490 名前:デフォルトの名無しさん mailto:sage [2011/06/01(水) 02:31:39.53 .net] 機械語直打ちw やだな・・・罰ゲームだ
491 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 02:57:07.11 .net] >>486 ,487 そんなくだらない煽りが来るとは思わなかった. mpichってconfigure makeしません? 数値計算メインで使ってるなら, 効率考えて,コンパイラ変えたりするでしょ. mpi関係ないコンパイラの速度って, icc>1.1倍>gcc4>>1 .8倍>>gcc3 ぐらいのイメージなんで,(Linux x86_64) ifortやiccでmpichコンパイルしたのとどっちが早いかな と思ったんですが. impiだと, mpicc -cc=icc て出来ることがわかったので,自己解決しました.
492 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 03:03:11.95 .net] >>481 環境変数はbash_profileのほうがふつうじゃない? >>484 mpd立てた? listenportの設定は適切? 付属のサンプルプログラムは流れた?
493 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 00:50:57.29 .net] >>488 「自分でコンパイル」に該当する環境をきちんと定義しないからさ。 コンパイラは?gcc?icc?それ以外? mpiライブラリは?計算内容は? まぁどれにしてもmpiコンパイラって基本的に適当なライブラリをくっつけて ビルドするスクリプトだから、実際やってる内容を出力するオプションあるし それで1つ1つ確認すればいいんじゃない?
494 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 01:47:18.76 .net] >>490 回答ありがとう.たしかにあやふやな質問だったと思う. 偏見かもしれんが,まともなwindowsクラスタってあるの? 数値計算を32bitで行うのは論外でしょ. でIntel Compilerを入れる時点で,アーキテクチャほぼ決まると思いますが. impiのデフォルトコンパイラはgcc&gfortranです. mpiライブラリの意味がわからん. impiの前はmpichを使ってた.(これで回答になっている?) 計算内容は有限差分とモンテカルロ. 続く
495 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 01:48:27.26 .net] >>490 続き 適当なライブラリが-lmpi -lpthread -lmとかを言っているなら, libmpiをコンパイルする必要があると思いますが. このライブラリをIntelがチューニングしてくれたら, 自分でコンパイルするより早いでしょうし. デフォルトのgccとかでやられてたら, 自分でコンパイルしたほうが速そうじゃない? 実際やってる内容ってのは,mpiccやmpifcのスクリプトの中身のこと? それとも別の何かを指しているの?
496 名前:デフォルトの名無しさん [2011/08/28(日) 05:28:03.47 .net] ブロードキャストってネットワークの送受信量を減らすことができるのですか? それとも単に便利なだけというだけなのでしょうか?
497 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 19:37:51.69 .net] MPIってテキストからデータ読み込んだ時に、 MPI_SendやMPI_Recvを使って送受信可能にするためには変換が必要だったりしますか? double型のデータなんですが。
498 名前:デフォルトの名無しさん mailto:hotaru__hyoma0615@hotmail.co.jp [2011/09/02(金) 11:09:03.84 .net] MPIでどうしても通らなくて困ってます。 エラーが One of the process 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,besure to include a "return 0"or"exit(0)"in your C code before exiting the application. PID ***** failed on node n2 due to signal 11と出て通りません。 ソースはアップロダにあげるのでよければご教授お願いします。 ttp://uproda.2ch-library.com/423445uMY/lib423445.c
499 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 10:38:26.00 .net] One of the process started by mpirun has exited with a nonzero exit code. とあるので全うな終了をしてないプロセスがあるんでしょう。 return 0以外で終了するっぽいコードは inputn() です。何故か EOF に達すると exit(1) しているので inputq() のように break にすれば直る・・・・・・とは思いませんが。 とりあえず他の点でも突っ込み。 ・座標入力でy,zがEOFになってもbreakで抜けて処理しているけどいいの?というかそういう表示を出さないとバグがわからないと思う。 ・mainのループ関係がおかしい。わかりやすいところではifとelseが対応してない。 ・getdouble() は1行から1つの数値しか読み込まないっぽいので 3次元座標的には読みにくい入力データが必要。
500 名前:495 mailto:hotaru_hyoma0615@hotmail.co.jp [2011/09/04(日) 09:45:19.22 .net] >>496 さんの言った通り直しても通りませんでした…。 正直自分の知識じゃ限界を感じているので 代わりにやってくれる方がいれば報酬払ってもいいです。 最大2万円までしか出せませんが…。メール待ってます。
501 名前:デフォルトの名無しさん [2011/11/15(火) 11:36:05.43 .net] openmpi使ってるんだがnohupが効かねぇ・・・ 端末PC落とすと計算やめちゃうんだが
502 名前:デフォルトの名無しさん [2011/11/19(土) 16:31:12.60 .net] へえ
503 名前:デフォルトの名無しさん [2011/11/24(木) 19:56:37.29 .net] MPIの勉強始めようと思うんだけどMPI3ってのはまだ出てないの?
504 名前:デフォルトの名無しさん [2012/05/16(水) 14:34:19.07 .net] OpemMPとの違いを教えてください
505 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 15:20:09.38 .net] MPI 妖精がいっぱい同時に働く。 拍子を合わせそこなうと、ぐだぐだ。 プログラムは最初から並列前提で書く方が いいかもしてない。非並列からの移行は面倒臭い。 OpenMP 手がいっぱいある妖精が独りで頑張る。 並列化はかなり楽。 混在できるけどね。 gfortran とか無料コンパイラがOpenMPに 対応しているし、マルチコアCPUが 普通になってきた今日、 小規模から中規模ならOpenMPがオススメ。 大規模スパコン使う可能性があるなら、 MPI で最初から組むべし。
506 名前:デフォルトの名無しさん [2012/06/21(木) 09:40:29.85 .net] MPIにおすすめのスイッチングハブを教えてください
507 名前:デフォルトの名無しさん [2012/08/03(金) 08:01:03.03 .net] >>503 バカハブこれ最強
508 名前:デフォルトの名無しさん mailto:sage [2012/10/31(水) 13:14:04.95 .net] LANポートにあきがあるならノードでリングベース組むのが勉強になるで 俺は混在は結構ありだとおもうで クラスタとかなら通信時間削減が期待できる
509 名前:デフォルトの名無しさん [2012/11/23(金) 18:27:19.04 .net] gigabit ethernetからInfiniBandに変えた場合のベンチマーク結果とかありますか? アプリケーションにも依るとは思うのですが、ある程度、どのくらい向上するのか知りたいのですが ♪∧,,∧ ♪∧,,∧・ ω・) ∧,,∧・ ω・) )っ (・ ω・) )っ__フ (っ )っ__フ(_/彡 ( __フ(_/彡 (_/彡♪
510 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 12:31:36.78 .net] www.science-academy.jp/showcase/11/pdf/P-108_showcase2012.pdf ↑こいつとか、国泰寺高校もそうだけど、学生でもこういうMPIのシステムを構築できる時代なんだな。 ただ、それゆえに性能測定しかしていない。 テーマを持たないと意味ないよな。 それに関して指導できる教師が高校にいるものだろうか?
511 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 05:09:09.55 .net] 動的に確保する要素を含む構造体のデータタイプを作るにはどうしたらいいのでしょうか。 int MPI_Type_struct(int count, int blocklens[], MPI_Aint indices[], MPI_Datatype old_types[], MPI_Datatype *newtype) のMPI_Aint indices[]のアドレス計算部分で構造体の動的に確保した要素のせいで アドレスが一部分に固まってないのでよくわかりません。
512 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 16:11:03.36 .net] >>508 要素を一つずつ配布するしかないんじゃないか
513 名前:デフォルトの名無しさん mailto:sage [2013/07/28(日) NY:AN:NY.AN .net] 多体問題とか計算させて可視化とか ありきたりだけどインパクトはあるよね そんなに難しくないし
514 名前:デフォルトの名無しさん mailto:sage [2013/08/28(水) NY:AN:NY.AN .net] みなさんI/O(特に出力)はどうしてますか? netCDFとかやんないといけないんですかね
515 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 20:32:46.52 .net] 初めてMPIプログラムをしたのですが、しばらく動いた後に何回も通っている MPI::COMM_WORLD.Isend で Segmentation fault が出てしまいます。 Debian(wheezy)の OpenMPI 1.4.5 を使っています。どのような時にこのエラーが出るのでしょうか? テストプログラムを組んで第1引数をポインタのみで実態が無いように組んでみましたが、一発でエラーが出て 出方が違っていました。この時のエラーは次のように出ます。 [hostname:7247] *** An error occurred in MPI_Isend [hostname:7247] *** on communicator MPI_COMM_WORLD [hostname:7247] *** MPI_ERR_BUFFER: invalid buffer pointer [hostname:7247] *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort) もし宜しければアドバイスお願いします
516 名前:デフォルトの名無しさん mailto:sage [2013/10/21(月) 18:46:01.68 .net] mpi_err_buffer invalid buffer pointer でググると、 Stackoverflows上のQ&Aなどの情報が見つけられるね
517 名前:512 mailto:sage [2013/10/22(火) 20:15:27.18 .net] >>513 レス有難うございます。 ググってみましたが、英語が堪能でないため理解できていない状態です orz ですがテストプログラムで起きる条件を見つけることが出来ました。 スレッドでRecvで待ち受けている状態で同じランク内でIsend, Irecvで 色々送受信する時にエラーが発生するようです。 RecvをIrecvに変更してタグを分ければエラーが発生しないようですが、 まだ良く見ていないのでなんとも言えない状態です。 コミュニケータとかタグをよく理解していなくてよく分からないのですが、 何となく通信を分けれればいいな程度ならタグで分けるでOKです?
518 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 22:41:16.90 .net] ランクを指定してfinalizeに到達したか調べる方法はないですか?
519 名前:デフォルトの名無しさん [2013/12/04(水) 11:39:20.69 .net] MPI の勉強のために、コードの主要部分は C で書かれていて、 具体的な計算部分は fortran77 で書かれたサブルーチンを 呼んでいる混在コードを MPI 並列化したいと思っています。 当面の目標は、MPI の初期化・終了部分などを C の部分で書いて、 fortran で書かれている部分に具体的な指示行を入れて並列化を することなのですが、私の勉強不足で、最初からつまづいている 状態です。 C の部分に MPI_Init(&argc, &argv); MPI_Finalize(); を入れて、
520 名前:デフォルトの名無しさん [2013/12/04(水) 11:41:00.26 .net] fortran のサブルーチンに MPI のヘッダや変数定義、MPI 関数 #include <mpi.h> integer nprocs, myrank, ierr call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr ) call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr ) write(*, *) nprocs, myrank を入れてコンパイルし、4並列の MPI 計算をしてみたところ、 全てのプロセスで nprocs と myrank が 0 と表示されて しまいました。fortran 部分で新規に nprocs と myrank を 定義しているのが原因なのではないかと思っていますが、 C から正しく fortran 側に情報を伝えて、正しく表示させる (nprocs = 4 など)には、どのようにすればよろしいでしょうか。 MPI の基礎が分かっておらず、全くの素人質問で申し訳ありませんが、 ご助言など頂けますと助かります。
521 名前:デフォルトの名無しさん mailto:sage [2013/12/04(水) 13:06:04.90 .net] FORTRANはしばらく触っていないけど、includeは正しいの? 私もMPIプログラムは素人だけど疑問は何点か有るよ 疑問1、MPIを含まないCとFORTRANの混成は問題なく作れるのか? 疑問2、C又はFORTRAN単独言語の時にMPIのプログラムは作れるのか? 疑問3、C、FORTRAN、MPIのバージョンはいくつ?また実装系は何ですか? で話は少し変わってくるんじゃないかな
522 名前:デフォルトの名無しさん [2013/12/04(水) 13:35:33.96 .net] アドバイス頂きありがとうございます。 1 についてですが、MPI を含まない C と FORTRAN の混成で 作られたコードは問題なく動いていまして、そのコードを これから MPI 化したいと思っています。 2 についてですが、現在の C と FORTRAN の混成で作られた コードの規模が割と大きいため、C 又は FORTRAN 単独言語に 書き換えるのが容易ではありませんが、仮にできたとすると 単独言語用の一般的な方法で MPI 化できると思っています。 3 についてですが、C と FORTRAN、MPI のバージョンはそれぞれ icc (ICC) 12.1.4 20120410 mpiifort (IFORT) 12.1.4 20120410 Intel MPI 4.0.3 です。 また、実装系は intel のワークステーションです。 現時点では FORTRAN 側での include ファイルは mpi.h だけですが、それが正しいかどうかは自信がありません。 何かご助言などありましたらお教え頂けるとありがたいです。
523 名前:デフォルトの名無しさん mailto:sage [2013/12/04(水) 14:02:42.00 .net] includeはC言語の書き方に見えたんで書いたんだけど・・・ include 'mpif.h' とか書くんじゃない? intelのコンパイラは使ったこと無いからわからないけどね 疑問2については簡単なプログラムを(rankを表示する)書いてみたらいいんじゃないと言う意味で書きました
524 名前:デフォルトの名無しさん [2013/12/04(水) 16:27:50.33 .net] 説明不足ですみませんが、先の include は FORTRAN の部分に挿入した ものです。別途 C の部分には、既に #include "mpi.h" と書いていますが、 もしかして、include 文は C の部分に書いておけば、あらためて FORTRAN の部分には書く必要はないのでしょうか??? 2 については、C も FORTRAN も簡単なプログラムを書くことで、 MPI が動作する(rank が表示される)ことを確認しています。 ただ、今回のような C の中に FORTRAN が入れ子になっている状態での MPI の書き方がわからず(FORTRAN の subroutine を呼んでいる箇所の 前後で MPI の指示文を書いてもダメなのでしょうね?)、困っています。
525 名前:デフォルトの名無しさん mailto:sage [2013/12/04(水) 17:19:45.26 .net] テストしていないので話半分で聞いて下さい。 まずFORTRANに書くincludeの書き方が間違っている includeはファイルが分割されているとそれ毎に書く必要がある なので ----- main.c ----- #include <mpi.h> int main( int argc, char *argv[] ) { MPI_Init( &argc, &argv ); fortran_subroutine(); MPI_Finalize(); return 0; } ----- fortran_subroutine.f ----- include 'mpif.h' sobroutine fortran_subroutine() integer nprocs, myrank, ierr call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr ) call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr ) write(*, *) nprocs, myrank end subroutine fortran_subroutine こんな書き方になると思います(FORTRAN忘れましたw) 小さなプログラムで書き方をテストしてからやった方がいいのでは?
526 名前:522 mailto:sage [2013/12/04(水) 21:43:48.10 .net] Linux 環境でOpenMPI 1.4.5 gcc 4.7.2 でコンパイルすると実行時にエラーが出てしまうね。 この環境で混在できるのだろうか? ここ人が少なくで答えてくれる人居ないだろうな >>521 さんも環境に依存する部分なので上手く行くと良いですね 前のプログラムにタイポと抜けがあったので修正しました % mpif77 -c rank.f % mpicc -o test02 main.c rank.o -l:/usr/lib/gcc/i486-linux-gnu/4.7/libgfortran.a -lmpi_f77 でコンパイルしました ----- main.c ----- #include <mpi.h> void rank_(); int main( int argc, char *argv[] ) { MPI_Init( &argc, &argv ); rank_(); MPI_Finalize(); return 0; } ----- rank.f ----- C include 'mpif.h' subroutine rank integer nprocs, myrank, ierr call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr ) call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr ) write(*, *) nprocs, myrank end subroutine rank
527 名前:522 mailto:sage [2013/12/04(水) 22:18:07.46 .net] includeをsubroutineの後に持ってきたら実行も上手く行きました orz... ----- rank.f ----- subroutine rank include 'mpif.h' integer nprocs, myrank, ierr call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr ) call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr ) write(*, *) nprocs, myrank end subroutine rank
528 名前:デフォルトの名無しさん [2013/12/06(金) 01:28:12.82 .net] >> 522 さん ご返信が遅くなり大変申し訳ありませんでした。 この度はコードのご指導まで頂き、本当にありがとうございました! 私の環境は intel 環境で、不勉強もありなかなか上手くいきません でしたが、参考にさせて頂きつつ、なんとか mpiifort -c rank.f mpiicc -o a.out main.c rank.o -lifcore -limf mpirun -np 4 a.out で動きました!嬉しいです!! この度は、ご助言頂き本当にありがとうございました!!
529 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 03:15:26.43 ID:SX33fbF3.net] おるでw 最近はMPIのインストール方法とか使用方法とかを説明する記事やドキュメントが多いから、わざわざ2ちゃんのスレにカキコするまでもないのではないかな…
530 名前:デフォルトの名無しさん [2014/09/25(木) 20:37:56.94 ID:77m4KJC/.net] プログラミング初心者ですが質問させてください。 フリーウェアだけでfortranのmpiを用いた並列計算環境って用意できますか? OSはwindowsです。色々解説サイトを回ったのですが、OSがwinで フリーウェアという条件に一致するものがありません。 解説サイトか、フリーウェアを紹介していただけたら幸いです。
531 名前:デフォルトの名無しさん mailto:sage [2014/09/25(木) 20:55:19.71 ID:1qsw9PIQ.net] WindowsにVirtualboxをインストール VirtualboxにLinuxをインストール ゲストOSでmpi環境構築 以上
532 名前:デフォルトの名無しさん [2014/09/25(木) 23:09:57.41 ID:77m4KJC/.net] >>528 さん回答ありがとうございます。 早速試してきます。
533 名前:デフォルトの名無しさん [2014/09/26(金) 00:43:22.36 ID:w0XQeQM8.net] すみません。再度質問します。 とりあえず、並列計算を行える環境にはなったのですが、 8コアで計算させていたら全てのコアで使用率が100%となりました。 計算速度は犠牲にしてよいので、使用率を50%程に低下させつつ動作させることは 可能でしょうか?
534 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 06:29:58.28 ID:IA039Vji.net] ゲストOSが使用するCPU数を4コアに設定 4/8でCPU使用率50% 以上
535 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 12:06:37.62 ID:FlDtTMp/.net] うんこ
536 名前:デフォルトの名無しさん [2016/03/29(火) 09:26:01.42 ID:/c8bAcK4.net] サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
537 名前:デフォルトの名無しさん mailto:sage [2016/08/19(金) 15:54:40.93 ID:hNG+d2Rp.net] windows10を2台とMSMPIで通信したいんだが error 1825のセキュリティパッケージ固有のエラーとやらが出て通信できないんだ firewallはオフにしてもだめ OSはwindows HPC clusterとかじゃないとできなかったりする?
538 名前:デフォルトの名無しさん [2016/10/13(木) 07:16:32.67 ID:aU3BNmFk.net] SMPマシン数台のMPICH2環境を構築しようとしています。 とりあえず8コアマシンで1ノード1CPUでの環境は作り、ベンチマークなどをとってテストしている最中です。 さて、ここからSMP+MPICH2混在環境に移行しようとしてるんですが、SMP環境をアクティブにする方法が判りません。 どうしたらいいのでしょうか?? 環境は centos6.8 mpich1.21p1 です。 よろしくお願いします。
539 名前:デフォルトの名無しさん [2017/01/09(月) 17:58:00.69 ID:nq81pkaz.net] SMPをアクティブにするってどういうことだろうか? 単純にOpenMPを使えば良いだろうに。
540 名前:デフォルトの名無しさん [2017/02/27(月) 23:58:25.54 ID:UI1UeTdZ.net] 初めてInfiniBand使ったけど爆速だなこりゃ。
541 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 02:38:12.16 ID:LiutTzVc.net] OpenMPIを使うコードがinfinibandがある環境がない環境に比べ滅茶苦茶遅くて困った。 プロファイルとって調べたらopal_memory_ptmalloc2_int_mallocが一番時間食っていた。 コミュニケータは作るものの通信を一切しないテストコードなのにOpenMPIのmalloc系の関数が 何故に出てくんのかと思ったら、これglibcのmallocをフックしちゃうやつなのね。 mpirunに「--mca mpi_leave_pinned 0」を付けると無効化できて速度が元に戻ったけど、 このmpi_leave_pinnedはinfinibandのようなRDMA対応ネットワークのための設定なのに 有効化すると逆に遅くなるのが解せない・・・。
542 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 03:05:28.93 ID:LiutTzVc.net] ググって見つけた論文「HPCクラウドの実現に向けた仮想化クラスタの性能評価」には Infiniband使用時にMPI集団通信を向上させるために、実行時オプションとして 「--mca mpi_leave_pinned 0」を付加した って記述があるが、OpenMPIのFAQによればそれだとメモリをpinできないので遅くなるはず。 結局Infinibandを正しく使うにはどう設定するべきなんだろうか・・・。
543 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 00:38:03.64 ID:CbVYdpce.net] >>539 だけど、OpenMPIのFAQを見たらメモリのpinningをデフォルトで有効にする仕様については 開発者で反対意見もあったらしい。そりゃそうだろう・・・。 そんなん必要なのはMPIで参照するデータだけなのに、システムのmallocごと差し替えるというのは やりすぎではないか・・・。
544 名前:デフォルトの名無しさん [2018/05/23(水) 21:50:25.15 ID:Au5e7VGg.net] 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 12MI6
545 名前:デフォルトの名無しさん [2018/07/05(木) 00:11:39.46 ID:RfoszcD2.net] ES4
546 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 23:53:17.14 ID:Stoh1y6z.net] お手軽にクリティカルセクション作る方法がないのはクソ
547 名前:「Microsoft Power Fx」登場 [2021/03/03(水) 16:13:39.50 ID:TcsaJvTP.net] Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定:Microsoft Ignite 2021 https://asahi.5ch.net/test/read.cgi/newsplus/1614745763/l50
548 名前:デフォルトの名無しさん [2022/01/01(土) 22:23:23.80 ID:TCOZEf7v.net] 新打法がいいね
549 名前:デフォルトの名無しさん [2023/04/27(木) 18:18:54.78 ID:CFMhQ97GL] 私利私欲のために莫大な温室効果カ゛スまき散らして氣候変動させて災害連發させて人殺して石油需給逼迫させて物価暴騰させて社會に莫大な 損害を与えながら丿コノコス−ダンやらに行ってなにやら巻き込まれてるボケどもが,クソ税金泥棒公務員利権のネタにされなか゛ら人件費だの 食料だのと1億は税金をドフ゛に捨ててるた゛ろう何の関係もない國民から強奪した莫大な税金使って迎えに行くとか唖然とするか゛.こいつら ひとり1○ОО萬ほど徴収すへ゛きだし、こういうことのために今後は邦人の出国税ひとり10OΟ萬は徴収しないとな.入管収容て゛税金泥棒 1О○%のクソ公務員の過失責任を税金て゛肩代わりするとかやってるガヰシ゛ン入国税も1○O〇萬は徴収するのが筋た゛し.クソ航空機には 航空燃料税1ΚL1千万圓、離発着税1回1億圓,上空通過税1κm1Ο〇萬圓,それ以前にスティンガ‐解禁して、私有地からのクソ航空機 撃墜を合法化するのは住民としての普遍的な権利た゛し.憲法ガン無視で都心まて゛数珠つなき゛でクソ航空機飛ばして私権侵害して私腹を肥やす 強盜殺人の首魁齋藤鉄夫ら世界最惡の殺人腐敗組織公明党を壊滅させないと,お前らの生活は苦しくなる一方た゛という現実に気つ゛かないとな! 創価学会員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を 池田センセ―か゛□をきけて容認するとか本気で思ってるとしたら侮辱にもほと゛か゛あるぞ! hΤTρs://i.imgur、cоm/hnli1ga.jpeg
550 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 05:05:23.97 ID:EXF1G7CS.net] ホンマにそれがええんか?
551 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています