Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Google Colab上运行mpi4py代码?_Python_Google Compute Engine_Distributed Computing_Google Colaboratory_Mpi4py - Fatal编程技术网

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

Python 如何在Google Colab上运行mpi4py代码?,python,google-compute-engine,distributed-computing,google-colaboratory,mpi4py,Python,Google Compute Engine,Distributed Computing,Google Colaboratory,Mpi4py,我有一段使用mpi4py库分发的任务编写的代码。代码本质上只是分发循环并在多个核心中运行它们,而这些核心不能矢量化,它看起来像这样: 从MPI4p导入MPI comm=MPI.comm_WORLD numtasks=comm.Get_size() taskid=通信获取等级() MASTER=0 TAG1=1 TAG2=2 TAG3=3 TAG4=4 通常,当我必须在自己的本地机器上运行时,我只需在终端中键入如下内容 mpiexec -np 4 python my-program-name.p

我有一段使用mpi4py库分发的任务编写的代码。代码本质上只是分发循环并在多个核心中运行它们,而这些核心不能矢量化,它看起来像这样:

从MPI4p导入MPI
comm=MPI.comm_WORLD
numtasks=comm.Get_size()
taskid=通信获取等级()
MASTER=0
TAG1=1
TAG2=2
TAG3=3
TAG4=4
通常,当我必须在自己的本地机器上运行时,我只需在终端中键入如下内容

mpiexec -np 4 python my-program-name.py
如果我要在所有4个核心上运行。我的问题是,除了在谷歌虚拟机上,比如谷歌Colab上,我将如何做同样的事情?我正在寻找一个门外汉的指示做分布式编程使用mpi4py的谷歌虚拟机基本上


我能在stackoverflow上找到的唯一东西是这个,但现在它真的很有帮助。我如何做所有这些事情,例如“通过Google容器引擎设置集群节点”和“通过ssh从集群连接到一个VM并运行代码”?

在任何Jupyter代码窗口中,您只需键入“!”然后输入命令,如下所示:

!pip安装mpi4py

它将被解释为像在终端中一样运行。因此,您只需在需要运行的命令之前添加“!”:
!mpiexec-np 4 python my program name.py

这样,您可以做任何您喜欢的事情:复制/创建文件、克隆repo

另一种选择是使用python子流程库。 将此命令作为子进程运行,如下所示:

导入子流程
subprocess.call(['mpiexec','-np','4','python','my program name.py']))