我想获得一个mpi应用程序的进程ID,我从mpirun / mpiexec工具开始。
例如,我运行我的代码,让我们说8个进程,并希望在执行开始时获取所有这8个进程的进程ID,以便将另一个工具作为输入。
这样做的正确方法是什么?
答案 0 :(得分:4)
我不相信有任何MPI库例程会返回正在运行MPI进程的o / s进程的pid。为了绝对精确,我不认为MPI标准要求MPI进程和o / s进程之间存在一个映射,也不需要任何其他映射基数,尽管我认为我从未使用过MPI实现,其中没有一个:一个映射在不同的进程视图之间。
除此之外,如果您使用的是Linux机器,为什么不简单地使用getpid
?每个MPI进程都应该有自己的pid。我想有一个Windows系统调用同样的事情,但我不太了解Windows。