MPI编程size总为1 解决方案

之前遇到的问题在这儿mpi编程 comm.Get_rank()全为0而comm.Get_size()全为1应该怎么办?_wennyLee的博客-CSDN博客

后来,我尝试了在pycharm的terminal中运行程序

mpiexec -n 4 test.py

但是又出现了新的问题

然后为了解决”不是有效的 Win32 应用程序“这个问题,发现了解决方案:

需要将test.py文件打包为exe文件,然后再使用命令行来执行程序。

step1 安装pyinstaller包

        好像python3.6是自带了的

step2 将.py文件打包为exe文件

        1、通过cmd进入到.py文件所在的文件夹下

        2、”pyinstaller -F test.py“ (此处以test.py文件为例)

        3、然后会在当前文件夹下出现一个dist文件夹       

step3 运行test.exe文件

        1、进入到dist文件夹下,打开cmd。

        2、输入”mpiexec -n 4 test.exe“即可。

总结:如果MPI完成了配置的话,估计就只是进程没法启动起来,那就换个思路,打包为exe后再运行代码吧。

example:

from mpi4py import MPI
comm = MPI.COMM_WORLD
print("Rank:", comm.Get_rank(), "Size:", comm.Get_size())
print("hello world from process ", comm.Get_rank(),"of", comm.Get_size())

输出:


在pycharm中(支持远程调试及运行)运行MPI的代码:

代码来源于:使用pycharm专业版(支持远程调试及运行)如何运行mpi的代码呢???(mpi4py的代码)_51CTO博客_pycharm运行调试配置

我的代码运行如下:

import os

python_path = "D:/conda3/python"

python_file = "D:/work/coded_matrix/Polynomial-Code-master/EC2-code/ISS_encode.py"

total_process = "-n {}".format(17)

command_str = 'mpiexec {0} {1} {2} '.format(total_process, python_path, python_file)
print(command_str)

os.system(command_str)

运行截图:

酱紫就不用每次从终端先打包,再运行啦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值