问题如题:
请注意:这里pycharm专业版的远程调试及运行该如何设置不进行介绍。
由于mpi进程启动是需要执行mpiexec或mpirun命令的,然而在pycharm中我们只能远程调用Python命令,无法直接调用mpiexec和mpirun命令,因此使用pycharm远程运行mpi代码存在一定困难。
如果变换一下思路呢???
其实我们在pycharm远程运行某个启动代码,然后在这个启动代码中启动想要运行的mpi程序就可以解决这个问题了。
给出我的解决方案:
pycharm远程启动Python代码:
# run_mpi.py
import os python_path = "/home/xxxxxx/anaconda3/bin/python" python_file = "/home/xxxxxx/x.py" total_process = "-np {}".format(8) machinefile = "-machinefile /home/xxxxxx/myhosts" command_str = 'mpiexec {0} {1} {2} {3}'.format(total_process, machinefile, python_path, python_file) print(command_str) os.system(command_str)
远程运行该Python代码,就相当于远程执行命令:
mpiexec -np 8 -machinefile /home/xxxxxx/myhosts /home/xxxxxx/anaconda3/bin/python /home/xxxxxx/x.py
从而解决使用pycharm无法远程运行mpi代码的问题。
我们每次运行时只需要手动修改 python_file 变量中想要执行的代码文件名称即可。