mpi4py:Spawn进程为Python线程,以便于调试

时间:2016-08-31 13:35:43

标签: python multithreading mpi mpi4py

要使用mpi4py,标准方法是使用mpiexec使用多个MPI进程启动程序。例如mpiexec -n 4 python3.5 myprog.py

现在,这使调试变得困难,因为人们无法直接使用Python解释器以及使用Python解释器的IDE调试器。但是,调试多线程应用程序没有问题。

所以我的想法是:我没有使用mpiexec来进行流程,而是使用Python脚本来驱动多个线程,每个线程都将作为一个MPI进程,所有这些都在Python解释器中发生。 / strong>所以mpiexec的使用没有必要,我可以调试我的应用程序,就像任何其他多线程Python程序一样。那可能吗,怎么样?

(总的来说,我非常乐意为mpi4py找到一些很好的示例集合或教程,但是并不是很有用。)

1 个答案:

答案 0 :(得分:1)

您不需要实施任何硬核想法。 mpiexec已经为您提供了产品流程。假设您使用pudb Python调试器,您可以执行以下操作:

mpiexec -np 4 xterm -e python2.7 -m pudb.run helloword.py

-e的{​​{1}}选项指定将执行哪个程序xterm

PS:我没有使用Python 3.5进行测试,但类似的解决方案可以正常使用