2016-07-02 12 views
1

は、私はちょうどMPIを学び始めました。これは2つのプロセッサ間でデータを送受信するための私の最初のプログラムです...CとのMPI:通信時間

  MPI_Status status; 
      MPI_Init(&argc,&argv); 
      MPI_Comm_rank(MPI_COMM_WORLD,&rank); 
      MPI_Comm_size(MPI_COMM_WORLD,&size); 
      printf("Comm Size %d",size); 
      printf("Rank %d",rank); 
      if (rank == 0) 
        { 
          for(j=1;j<size;j++); 
            { 
              tmp = clock(); 
              start_time = clock(); 
              MPI_Send(&N,1,MPI_INT,j,j,MPI_COMM_WORLD); 
              MPI_Recv(&N,1,MPI_INT,j,j,MPI_COMM_WORLD,&status); 
              end_time = clock(); 
              timer_overhead = start_time - tmp; 
              total_time = end_time - start_time - timer_overhead; 
              communication_time = total_time/2; 
              printf("%d",total_time); 
            } 
        } 
      else 
        { 
          MPI_Recv(&N,1,MPI_INT,0,rank,MPI_COMM_WORLD,&status); 
          MPI_Send(&N,1,MPI_INT,0,rank,MPI_COMM_WORLD); 
        } 

      MPI_Finalize(); 
    } 


しかし、このプログラムは、ハングアップを取得し続け、誰かが助けてくれますか?

答えて

3

forループがある行に ';'を入れました。最後に。

for(j=1;j<size;j++); 

「;」を削除します。

関連する問題