2012-03-25 17 views
0

コードはMPI_COMM_WORLDでインスタンス化されていますが、関数send_codeで使用されています。どのようにMPI_COMM_WORLDを宣言してどこにでも使用できますか?

私のコードは次のとおりです。

int send_code(char *code) 
{ 
     //produce the codes for adding the code into the table 
     printf("%s\n",code); 
     MPI_Send(code, 8, MPI_CHAR,0, 0,MPI_COMM_WORLD); 
} 

int main(int argc, char *argv[]) 
{ 

     MPI_Status status; 
     int outbuf, inbuf; 

     MPI_Init(&argc, &argv); 
     MPI_Comm_size(MPI_COMM_WORLD, &size); 
     MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
     if (rank==0) 
     { 
       MPI_Recv(code, 8, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &status); 
       printf("%s by master\n",code); 

     } 
     else 
     { 
       ........ 
     } 

     MPI_Finalize(); 
} 
+0

どのようなタイプですか? – tchap

答えて

0

静的グローバル変数?それがあなたのために十分安全であり、あなたがリスクを負う準備ができているなら、

+0

意味は何ですか? – Noor

+0

あなたのコードがどれほど複雑か分かりませんが、あなたが導入したすべてのグローバル状態には特別な注意が必要です。しかし、これがあなたがしなければならないことがあれば、そのグローバル変数は何も悪いことをすることはできません... – tchap

3

については、mpi.hで宣言され、MPI実装のライブラリのどこかで定義されています。

関連する問題