gpt4 book ai didi

所有进程开始前的c++MPI指令

转载 作者:行者123 更新时间:2023-11-30 03:27:18 24 4
gpt4 key购买 nike

假设我有这样的代码:

    int main(..){
cout<<"something"<<endl;
MPI_INIT(...);
..
..
..
MPI_FINALIZE();
}

我以为init之前的cout只会被主进程执行一次。相反,它的执行次数与进程数一样多。我如何才能只运行一条指令一次,然后再启动所有进程?

最佳答案

没有可移植的方法来实现!

另请注意,大多数 MPI 实现通过 mpirun 同时启动所有 MPI 任务。长话短说,MPI_Init() 使独立的进程从一个独特的作业变成一个 MPI 任务。

使用最近的 Open MPI,您可以尝试测试 PMIX_RANK 环境变量,我只能猜测 MPICH 衍生物有类似的方法来实现这一目的。

但再次声明,这些只是不可移植的技巧,您不应该那样做。

关于所有进程开始前的c++MPI指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47495108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com