【问题标题】:MPI with C: Communication timeMPI 与 C:通信时间
【发布时间】:2017-04-17 19:37:24
【问题描述】:

我刚刚开始学习 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(); 
    }

~
但是这个程序一直挂,有人可以帮忙吗?

【问题讨论】:

    标签: c parallel-processing mpi


    【解决方案1】:

    在你有for循环的那一行你放了';'最后。

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

    删除“;”。

    【讨论】:

      猜你喜欢
      • 2014-08-23
      • 2011-08-20
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多