Message Passing Interface (MPI) 統合スレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGとりあえず本家
http://www-unix.mcs.anl.gov/mpi/
005146
2005/04/06(水) 16:33:040052デフォルトの名無しさん
2005/04/06(水) 22:37:29005346
2005/04/06(水) 23:35:210054デフォルトの名無しさん
2005/04/07(木) 14:03:18threadを使ったプログラムは経験があるのですが、MPIでの作成方法がよくわかりません。
0055デフォルトの名無しさん
2005/04/11(月) 00:23:110056デフォルトの名無しさん
2005/04/16(土) 01:49:10なんでwhile(!done){}あたりのギミックが必要なの?
0057デフォルトの名無しさん
2005/04/16(土) 13:14:57( ∀`) 彡 >>56 教えてやってもいいが
((≡O ⊃
| | おまい!左腕を上下 右腕を前後
し⌒J 同時にやってみろ!話はそれからだ!
0058デフォルトの名無しさん
2005/04/16(土) 13:52:56他のn個のCPUが処理が完全同期で終わる保証はどこにもないだろ。
だったら全部の処理が終わるまで待つのは当たり前だろ。
それともそんなことすら解らないのか?プログラム組むの辞めろ。お前は
もう、日本から出て行け
0059デフォルトの名無しさん
2005/04/16(土) 16:24:45> なんでwhile(!done){}あたりのギミックが必要なの?
単にコードの書き方がまずいだけと思われ。
この内容ならもっと見やすくシンプルにできるよね。
0060デフォルトの名無しさん
2005/04/16(土) 21:35:10なんかわかったような気がする。
コメントアウトの部分のソースを無視していました。
頭悪くてすみませんでした。
>>58さん
MPI_Reduce()で全プロセスが終わるの待ってるのかと思ってたんですけど
違うんですか?
0061デフォルトの名無しさん
2005/04/30(土) 18:49:380062デフォルトの名無しさん
2005/05/01(日) 01:56:36p5_30033: p4_error: interrupt SIGSEGV: 11
Broken pipe
Broken pipe
というエラーが出ます。これは何がいけないのでしょうか?
個人的には、ファイルアクセスで問題が起きていると思っているのですが、エラーの原因が未だつかめません。
0064デフォルトの名無しさん
2005/05/03(火) 11:48:06配列の範囲外にアクセスしているとか
MPI以外のエラーを疑え
0065デフォルトの名無しさん
2005/05/05(木) 11:48:10問題ないと思っていたのですが、gcc4にアップデートして以来、原因不明で0番プロセス以外が実行中に落ちます。
0066デフォルトの名無しさん
2005/05/07(土) 03:33:52gcc3 を使ってた方が安全だよ。
0067デフォルトの名無しさん
2005/08/19(金) 18:09:30mpd.confにsecretwordを書いた後どうすればいいかちょっと分かりません
教えてもらえないでしょうか?
0068デフォルトの名無しさん
2005/08/19(金) 18:42:55○ ちょっと教えてもらえないでしょうか?
0069デフォルトの名無しさん
2005/08/22(月) 05:24:370070デフォルトの名無しさん
2005/09/09(金) 19:38:130071デフォルトの名無しさん
2005/09/12(月) 22:52:56C++でサーバアプリで計算しながら、クライアントアプリにソケット通信するようなシステムに
適用できますか?
サーバー側は1000件/分ぐらいのトランザクションで、クライアント側はサマリー情報を
半リアルで表示させるだけといったかんじです。
0072デフォルトの名無しさん
2005/09/13(火) 07:18:440073デフォルトの名無しさん
2005/11/06(日) 16:40:070074デフォルトの名無しさん
2005/11/17(木) 11:20:420075デフォルトの名無しさん
2005/11/17(木) 13:12:490076デフォルトの名無しさん
2005/11/17(木) 16:19:520077デフォルトの名無しさん
2005/11/17(木) 16:56:140078デフォルトの名無しさん
2005/12/21(水) 23:26:52http://www-lab.imr.tohoku.ac.jp/~t-nissie/computer/wolfchen/doc/HomeWolfchenProject.html
0079デフォルトの名無しさん
2006/01/12(木) 23:20:44mpirun -c 16 myprog.exe
で実行すると、16個のプロセスが動き始めるのですが、問題があります。
それは、プログラムを実行すると、データファイルを読み込んで、処理が始まるのですが、データファイルはいくつかの大きさのものを用意しているのですが、
あるデータファイルでは、正しく計算が完了するのですが、あるデータファイルでは
計算開始直後にエラーで終了してしまいます。調べたところ、MPI_Bcast()で
エラーしていました。
また、正しく計算できるデータファイルを使って、
mpirun -c 8 myprog.exe
のように変えるとエラーする場合もあります。
そこで教えていただきたいのですが、そもそも1CPUマシンで、このような並列計算を
実行することは、何か問題がありますでしょうか?
よろしく。
0080デフォルトの名無しさん
2006/01/13(金) 06:41:19メモリ不足とかじゃなきゃ、プログラムのバグだろうね
0081デフォルトの名無しさん
2006/01/13(金) 11:50:49>基本的に動かないとまずい。
>メモリ不足とかじゃなきゃ、プログラムのバグだろうね
やはりそうですか。
実際、プログラムを単純化して、単に16プロセスでMPI_Bcast()するだけというプログラムでは、問題なく動きます。
16以外のどんな数字でも問題ありません。なので、プログラムのバグの可能性が高いのですが、一つ気になる点は、
エラーするケースでも、エラーしないケースでも、いずれの場合でもプロセスをps -ef などでモニタしていると、
実行中に16プロセスそれぞれの親プロセスIDがころころ変わっているのが確認できるのですが、何かそのあたり
に関係しているのではと思うのですが、どなたか詳しい方、ヒントなどお願いします。
0082デフォルトの名無しさん
2006/01/15(日) 08:59:30プログラムのバグ。
MPI_Barrier()で、きちんと同期とって
MPI_Bcast()で起こってるなら
MPI実装を疑ってもいい。
まあ、なんだ。
漏れには「FedoraのMPIでエラー終了」じゃ、
どのMPI環境なのかも
どんな異常終了かもサパーリですよ。
0083デフォルトの名無しさん
2006/01/15(日) 14:56:36(1) 単純化したプログラムと、エラーが起こる実プログラムで、
送信データの大きさは同じですか?
(2)どういうエラーメッセージが出ますか?
(3)mpi_bcastの前後にprintfでランクの値を書き出した場合、
どうなりますか?
(全プロセスがmpi_bcast前しか表示しないのか、
それともプロセスによってはmpi_bcast後も表示するのか)
(4)エラーが起こるデータファイルで、プロセス数が16より少ないときは
どうなりますか?
0084デフォルトの名無しさん
2006/01/16(月) 00:57:31>(1) 単純化したプログラムと、エラーが起こる実プログラムで、
>送信データの大きさは同じですか?
はい。MPI_INTを一個です。
>(2)どういうエラーメッセージが出ますか?
今自宅なので、正確には覚えていませんが、英語のメッセージで、
『どれかのプロセスでエラーしました』とか言う感じだったと思います。
>(3)mpi_bcastの前後にprintfでランクの値を書き出した場合、
>どうなりますか?
正しく、自分のランク値が表示されます。
>(全プロセスがmpi_bcast前しか表示しないのか、
>それともプロセスによってはmpi_bcast後も表示するのか)
全プロセスで、MPI_Bcast前に正しいランク値が表示されますが、
MPI_Bcast後には、どのプロセスも何も表示されません。
0085デフォルトの名無しさん
2006/01/16(月) 00:58:31>どうなりますか?
ええっと、その後、いろいろ試してみたら以下のようになりました。
分割数 大きいデータ 小さいデータ
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がエラーする
原因が分からないので、ちょっと気がかりです。
0086デフォルトの名無しさん
2006/01/16(月) 04:45:45>はい。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 エラー
0087デフォルトの名無しさん
2006/01/16(月) 04:50:20(9) 実プログラムが下記のような構成になっているとして
(a)の部分をすべてコメントにすれば、
(単純化したプログラムではうまくいくとのことなので)
うまく動くと思いますが、
その後で、(a)の部分を前半から少しずつ
コメントをはずしてはテストしを繰り返せば、
どこかで再びエラーとなるはずです。
それによって、エラーの原因となっている個所が特定できるかもしれません。
あるいは逆に、(b)と同等の通信を(送信バッファーの中身は空でも可)
まず(a)の直前で行い、うまくいったら、
(a)内を少しずつ後ろへずらしていっても同じテストができます。
MPI_Init();
(a) 入力ファイルの読み込み等
(b) MPI_Bcast(a,1,MPI_INT,〜);
(c) 計算
MPI_Finalize();
0088デフォルトの名無しさん
2006/01/16(月) 05:13:37>はい。MPI_INTを一個です。
確認ですが、一個というのは、下記の2つ目の引数が1という意味ですか?
MPI_Bcast(a,1,MPI_INT,〜);
また、下記の大きいデータの場合も小さいデータの場合も1ですか?
分割数 大きいデータ 小さいデータ
2 OK エラー
0089デフォルトの名無しさん
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)の部分をすべてコメントにすれば、
これらのテスト結果の報告は、後日させていただきます。
0090sage
2006/01/19(木) 03:41:50オプションをちょっと教えていただけないでしょうか?
osはfedora core4 コンパイラーにintel fortran compilar 9.0
mpich-1.2.7p1 を使用しています。
よろしくおねがいします。
0091デフォルトの名無しさん
2006/01/19(木) 17:54:06if ( 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]
0092デフォルトの名無しさん
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
です。
0093デフォルトの名無しさん
2006/01/20(金) 00:14:20もし同じエラーが出たとしたら、
同じサブルーチンの同じ引数に異なる型を指定しているという
警告で、MPIとは関係ないと思います。
program test
call sub(a)
call sub(i)
end
subroutine sub(a)
a=1
end
0094デフォルトの名無しさん
2006/01/20(金) 00:21:15-2つのif文を1つにまとめた方がすっきりすると思います。
-例えばランク0プロセスが同じireq2を(mpi_waitする前に)2回使うのはまずいです。
片方を例えばireq1にしてください。
また2回のcall mpi_xxxの後でmpi_waitが2回必要となります。
あるいはmpi_sendrecvを使う手もあります。
009591
2006/01/23(月) 16:20:18まさにそれでした。
>>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)です。
0096デフォルトの名無しさん
2006/01/23(月) 18:40:47(2) 送る要素数は3個ですか?
(3) istatusは大きさmpi_status_sizeで配列宣言してますか?
(4) itagには何が指定されてますか?
(5) 実行するとどういうエラーになりますか?
009791
2006/01/24(火) 11:15:33(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のままであったりします。
0098デフォルトの名無しさん
2006/01/24(火) 18:43:500099デフォルトの名無しさん
2006/01/24(火) 18:46:04(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回で送るようにします。
従ってループ内で通信を行うということはあまりしません。
0100デフォルトの名無しさん
2006/01/26(木) 13:56:53MPIf90でコンパイルできねー!!
↓こんな感じのエラーしかでねー!!
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のインストールの時おかしな事したのか?おれ
0101デフォルトの名無しさん
2006/01/31(火) 15:53:130102デフォルトの名無しさん
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'
0103デフォルトの名無しさん
2006/02/01(水) 06:24:470104デフォルトの名無しさん
2006/02/01(水) 08:24:550105デフォルトの名無しさん
2006/02/01(水) 18:04:38glibcのヴァージョンが古いのか?動くっちゃ動くし結果も間違っていないが、何か気持ちわるい。
誰れか改善方法しりませんか?
/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
0106デフォルトの名無しさん
2006/02/02(木) 04:11:560107デフォルトの名無しさん
2006/02/02(木) 04:29:290108デフォルトの名無しさん
2006/02/02(木) 05:39:400109デフォルトの名無しさん
2006/02/02(木) 19:20:57>103-104
0110デフォルトの名無しさん
2006/02/06(月) 13:03:09?
何が言いたいの?日本語わかる?
せめて会話くらいしろよ。キチガイ
0111デフォルトの名無しさん
2006/02/09(木) 13:02:070112デフォルトの名無しさん
2006/02/09(木) 14:40:46ユーザーガイドにも載ってないし。
0113デフォルトの名無しさん
2006/03/01(水) 11:53:27インテルのサイトにも書いた?
http://softwareforums.intel.com/ids/board/message?board.id=11&message.id=3060
0114デフォルトの名無しさん
2006/03/02(木) 23:48:55MPICHダウンロードして、一緒についてきたサンプルプログラムを
MPICH Configurationで参加するノードを設定してから実行すると
Failed to launch the root process:
"C:\Documents and Settings\XXXXX\cpi"
LaunchProcess failed, LogonUser failed, ログオン失敗: ユーザー名を認識できないか
、またはパスワードが間違っています。
というエラーが返ってきます。
設定しなければローカルで動くんだけど、何でだろう?
0115デフォルトの名無しさん
2006/03/03(金) 10:12:08Q. 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."?
0116114
2006/03/03(金) 17:57:11ありがとう!
やってみるね!
0117デフォルトの名無しさん
2006/03/07(火) 16:00:54なんか練習問題みたいなのはないですか?
そんな大規模演算をする機会もないし、
練習用に何かお勧めなものはありますか?
0118デフォルトの名無しさん
2006/03/07(火) 17:20:48ヤコビ法の並列化
LU分解の並列化
2次元FFTの並列化
0119デフォルトの名無しさん
2006/03/07(火) 17:27:38e計算の並列化
0120デフォルトの名無しさん
2006/03/07(火) 19:24:56コマンド1
コマンド2
.
.
.
コマンドN
という独立したジョブが書いてあるテキストファイルを読み込んで、
P個のプロセッサで実行させるプログラム。
コマンドに依存関係つけるとなおよし。
0121デフォルトの名無しさん
2006/03/12(日) 16:05:090122デフォルトの名無しさん
2006/03/12(日) 16:09:320123デフォルトの名無しさん
2006/03/12(日) 21:03:03↓にモードの説明が。
http://www.mpi-forum.org/docs/mpi-11-html/node40.html
MPI_Ssendがない実装もあるようだし、返答をMPI_RecvかMPI_Barrierするのが確実じゃない?
バンド幅を測るとかの場合、受信が完全に終了したのを確認するにはこれしか方法がなさげ。
0124http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 21:10:21もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0125デフォルトの名無しさん
2006/03/19(日) 11:52:280126デフォルトの名無しさん
2006/03/24(金) 20:00:53以下のようなプログラムでも時間が3秒かかります。(VC++、IntelC++とも)
MPI_Finalizeの終了処理に時間がかかっているようですけど
対策をご存知の方いっらいしゃますすか。
#include "mpi.h"
int main(int argc, char **argv) {
MPI_Init(&argc, &argv);
MPI_Finalize();
return 0;
}
0127デフォルトの名無しさん
2006/04/13(木) 06:48:210128デフォルトの名無しさん
2006/04/13(木) 08:13:11一度に複数の相手と通信したり、
通信中に別の計算させたりするもの
0129デフォルトの名無しさん
2006/05/08(月) 21:15:200130デフォルトの名無しさん
2006/05/11(木) 15:37:350131デフォルトの名無しさん
2006/06/02(金) 08:31:400132デフォルトの名無しさん
2006/06/03(土) 01:56:38そんな仕様はない
0133デフォルトの名無しさん
2006/07/30(日) 21:08:39明日からmpi使うらしいんで勉強してきます
0134・∀・)っ-○◎● ◆R.I.S.K.0.
2006/07/30(日) 22:45:31アレって単にプロセス間通信やるだけよね?
プロセスレベルマルチタスクであってスレッドレベルマルチタスクじゃないよね?
0135デフォルトの名無しさん
2006/09/05(火) 22:49:52int 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と打ち間違えてもいないし……というわけで,原因・解決方法をご存知の方おりましたらご教授くださいませ.
0136135
2006/09/05(火) 23:46:15吊ってきます.
0137デフォルトの名無しさん
2006/10/25(水) 11:29:000138デフォルトの名無しさん
2006/11/16(木) 01:19:10mpdはローカルであれば、正常に起動してicpiなどきちんつ動いているのですが、
ネットワーク越しのリモートで分散させようとすると(mpdboot, rshに書き換え済み)
動作しません。
failed to ping mpd ...といったエラーがでます。
ちなみにrshは単体ではパスワードなしで動作しています。
Fedoreの設定はファイヤーウォールはインストールしていますが、
「ファイヤーウォールは無効」でやっています。
むしろmpdというよりもFedoraの設定のような気がしますが、同様な症状を
経験された方はおられますでしょうか?
0139デフォルトの名無しさん
2006/11/28(火) 16:48:25それを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でもソースを共通化できるので、楽になると思ったのですが、この作戦、
どうでしょうか?何か注意すべき点などありましたら、アドバイス御願いします。
0140デフォルトの名無しさん
2006/11/29(水) 18:55:13mpi詳しくないけど
CPU二個とnode二個はぜんぜん違うからできないんじゃないの?
0141デフォルトの名無しさん
2006/11/29(水) 20:04:150142デフォルトの名無しさん
2006/11/30(木) 10:50:29ありがとございます。やってみます。
ところで、MPIプログラムのデバッグって、皆さんどういうふうにやっていますか?
私にはとても難しいです。というのは、エラー発生しても、どこかのnodeでエラーが
起こった程度のことしかわからないので、怪しげなところにprintfを沢山いれて探し
出すという泥臭い方法でやっています。
一方WindowsのVCの環境だとDebuggerでSTEPで一行ずつ実行できるので、便利なのですが、
MPIプログラム開発でも、でも何かそういう統合的な開発環境や高性能なDebuggerって
あるのでしょうか?
0143デフォルトの名無しさん
2006/12/01(金) 00:13:290144デフォルトの名無しさん
2006/12/02(土) 21:56:05ほんまかいな?
0145・∀・)っ-○◎● ◆DanGorION6
2006/12/02(土) 22:26:170146デフォルトの名無しさん
2006/12/03(日) 19:00:27MS MPI
あたりでぐぐりぇ
0147・∀・)っ-○◎● ◆R.I.S.K.0.
2006/12/03(日) 19:07:050148・∀・)っ-○◎● ◆R.I.S.K.0.
2006/12/03(日) 19:07:200149デフォルトの名無しさん
2006/12/04(月) 11:56:46>Windows Compute Cluster Server 2003
これを買わないとWindowsXPでMPIはできないの?
0150デフォルトの名無しさん
2006/12/04(月) 15:24:37huge-test.cpp(11): warning #1188: floating-point value cannot be represented exactly
double a=HUGE_VAL;
とワーニングが出るんだけど、どうしたらいいかな??
0151デフォルトの名無しさん
2006/12/24(日) 01:09:15判別して処理を書き換えるという方法に問題はあるでしょうか?
また一般的ですか?
それとも処理ごとに書き換えた関数を用意して、
呼び出す側でIDによって呼び出す関数を変えた方が良いのでしょうか?
ご回答よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています