小编Ale*_*win的帖子

MPI系列主要功能

这是一个非常基本的MPI问题,但我无法解决它.我有一个main函数调用另一个使用MPI的函数.我希望main函数以串行方式执行,而另一个函数并行执行.我的代码是这样的:

int main (int argc, char *argv[])
{
    //some serial code goes here
    parallel_function(arg1, arg2);
    //some more serial code goes here
}

void parallel_function(int arg1, int arg2)
{
    //init MPI and do some stuff in parallel
    MPI_Init(NULL, NULL);
    MPI_Comm_size(MPI_COMM_WORLD, &p);
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
    //now do some parallel stuff
    //....
    //finalize to end MPI??
    MPI_Finalize();
}
Run Code Online (Sandbox Code Playgroud)

我的代码运行正常并获得预期的输出,但问题是主函数也在不同的进程中运行,因此串行代码执行不止一次.我不知道它是如何多次运行的,因为我还没有调用MPI_Init(如果在调用parallel_function之前我在main中打印,我会看到多个printf)

我完成后如何让我的程序并行运行?

谢谢你的回复!

c mpi

12
推荐指数
2
解决办法
6202
查看次数

标签 统计

c ×1

mpi ×1