如何在Google Colab上运行mpi4py代码?

时间:2019-09-01 10:43:05

标签: python google-compute-engine distributed-computing google-colaboratory mpi4py

我有一段代码编写了使用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中并运行代码”?

1 个答案:

答案 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'])