是否可以使用多个线程运行mpi可执行文件,以便在执行" top"只看到一个具有完整CPU使用率的进程?
例如,如果我运行" mpiexec -np 4 ./executable"并且" top",我看到4个具有不同PID的进程,每个进程使用100%cpu。我希望看到一个使用400%cpu的唯一PID的进程。
答案 0 :(得分:0)
不,这是不可能的。 MPI是为单独的流程明确设计的。它们将不可避免地显示为独立的流程。
现在可能存在一些基于线程而不是进程的深奥MPI实现,但我非常怀疑这些将是符合实际可用的MPI实现。
修改强>:
1-2。计划atop
in"累计每个计划"模式(按' p')可能会做你想要的。
3.通常,如果你杀了mpiexec
/ mpirun
,它将终止所有等级。否则,请考虑killall
。
我可以看到这对于表现性能的表面看是如何方便的,但你应该考虑投资为并行应用程序学习更复杂的性能分析工具。