sc10note/honsensample_mpi.c解説
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
since1995
開始行:
[[sc10note]]
*使い方 [#c4252111]
TSUBAME上でコンパイル (sc10.hが必要)
mpicc honsensample_mpi.c -o honsensample_mpi
TSUBAME上で実行
mpirun -np 2 ./honsensample_mpi ~yokamoto/supercon/prob...
実行のところで「~yokamoto/supercon/prob00.in」の箇所は問...
*ファイルの中身 [#sfa0f2df]
-16行目:「MAXSIZE」はsc10.hで定義されています.
-22行目:「sc10_init("teamname");」の「teamname...
**mainの33~61行目 [#f6a82498]
ランク0からp-1のそれぞれのプロセスが入力ファイル中の0番目...
33 //rank 0に集めて書き込む
34 if(rank == 0){ //rank0 のとき
35 for(i=0;i<p;i++){
36 if(i==0){
37 //担当の問題を解く
38 sc10_getproblem(rank, &probname, &m, &n, &k, t...
39 result = compute(m,n,k,table);
40 }else{
41 //他のプロセス担当の問題の答えを受信
42 MPI_Recv( &probname, 1, MPI_INT, i, 0, MPI_COM...
43 MPI_Recv( &result, 1, MPI_INT, i, 0, MPI_COMM_...
44 }
45 //既に答えを出力済みかを表示
46 if(sc10_issolved(probname)){
47 printf("The problem #%d is already solved.\n",...
48 }else{
49 printf("The problem #%d is not solved yet.\n",...
50 }
51 //書き込み
52 sc10_output(probname,result);
53 }
ここまでがランク0のプロセスが行う処理.次からランク1から...
54 }else{ //rankが1からp-1までのとき
55 //担当の問題を解く
56 sc10_getproblem(rank, &probname, &m, &n, &k, tab...
57 result = compute(m,n,k,table);
58 //答えを送信
59 MPI_Send( &probname, 1, MPI_INT, 0, 0, MPI_COMM_...
60 MPI_Send( &result, 1, MPI_INT, 0, 0, MPI_COMM_WO...
61 }
「sc10」ではじまる関数はsc10.hで定義されている.詳細は「[...
**computeとcompute2の中身 [#y6bb7d14]
honsensample_single.cと同じなので,「[[honsensample_singl...
終了行:
[[sc10note]]
*使い方 [#c4252111]
TSUBAME上でコンパイル (sc10.hが必要)
mpicc honsensample_mpi.c -o honsensample_mpi
TSUBAME上で実行
mpirun -np 2 ./honsensample_mpi ~yokamoto/supercon/prob...
実行のところで「~yokamoto/supercon/prob00.in」の箇所は問...
*ファイルの中身 [#sfa0f2df]
-16行目:「MAXSIZE」はsc10.hで定義されています.
-22行目:「sc10_init("teamname");」の「teamname...
**mainの33~61行目 [#f6a82498]
ランク0からp-1のそれぞれのプロセスが入力ファイル中の0番目...
33 //rank 0に集めて書き込む
34 if(rank == 0){ //rank0 のとき
35 for(i=0;i<p;i++){
36 if(i==0){
37 //担当の問題を解く
38 sc10_getproblem(rank, &probname, &m, &n, &k, t...
39 result = compute(m,n,k,table);
40 }else{
41 //他のプロセス担当の問題の答えを受信
42 MPI_Recv( &probname, 1, MPI_INT, i, 0, MPI_COM...
43 MPI_Recv( &result, 1, MPI_INT, i, 0, MPI_COMM_...
44 }
45 //既に答えを出力済みかを表示
46 if(sc10_issolved(probname)){
47 printf("The problem #%d is already solved.\n",...
48 }else{
49 printf("The problem #%d is not solved yet.\n",...
50 }
51 //書き込み
52 sc10_output(probname,result);
53 }
ここまでがランク0のプロセスが行う処理.次からランク1から...
54 }else{ //rankが1からp-1までのとき
55 //担当の問題を解く
56 sc10_getproblem(rank, &probname, &m, &n, &k, tab...
57 result = compute(m,n,k,table);
58 //答えを送信
59 MPI_Send( &probname, 1, MPI_INT, 0, 0, MPI_COMM_...
60 MPI_Send( &result, 1, MPI_INT, 0, 0, MPI_COMM_WO...
61 }
「sc10」ではじまる関数はsc10.hで定義されている.詳細は「[...
**computeとcompute2の中身 [#y6bb7d14]
honsensample_single.cと同じなので,「[[honsensample_singl...
ページ名: