我有一段代码编写了使用mpi4py库分发的任务。本质上,代码只是分发循环并在无法向量化的多核中运行它们,它看起来像这样:
from mpi4py import MPI
comm = MPI.COMM_WORLD
numtasks = comm.Get_size()
taskid = comm.Get_rank()
MASTER = 0
TAG1 = 1
TAG2 = 2
TAG3 = 3
TAG4 = 4
通常,当我必须在自己的本地计算机上运行时,我只需在终端中输入类似的内容
mpiexec -np 4 python my-program-name.py
如果我要在所有4个内核上运行。我的问题是,如何在Google虚拟机(例如Google Colab)上做同样的事情?我正在寻找关于如何在Google VM上使用mpi4py进行分布式编程的外行指令。
我在stackoverflow上唯一能找到的就是这个Distributed Programming on Google Cloud Engine using Python (mpi4py),但现在确实很有帮助。我该如何做所有这些事情,例如“通过Google容器引擎设置集群节点”和“从集群通过SSH连接到一个VM中并运行代码”?
答案 0 :(得分:0)
在任何Jupyter代码窗口中,您只需键入“!”即可。然后是命令,如下所示:
! pip install mpi4py
,它将像在终端中一样运行。因此,只需为您添加“!”在需要运行命令之前:
! mpiexec -np 4 python my-program-name.py
通过这种方式,您可以做任何事情:复制/创建文件,克隆存储库...
另一个选择是使用python子进程库。
将这个命令作为子进程运行,如下所示:
import subprocess
subprocess.call(['mpiexec', '-np', '4', 'python', 'my-program-name.py'])