如何在 IPython notebook 中使用 mpi4py?

How to use mpi4py in IPython notebook?

我有一个用于 Ipython 笔记本的 ipcluster 运行 8 个引擎。所以如下:

from IPython import parallel
clients = parallel.Client()
clients.block = True  # use synchronous computations
print clients.ids

给出[0, 1, 2, 3, 4, 5, 6, 7]。但是,我无法让 mpi4py 看到这些引擎:

from mpi4py import MPI
print MPI.COMM_WORLD.size

给出1。我想,我缺少一些基本的东西,所以我很感激任何帮助。

原来这需要一些魔法。单元格的第一行应该是:

%%px
from mpi4py import MPI
print MPI.COMM_WORLD.size