from IPython.parallel import Client c = Client() view = c[:] @view.remote(block=True) def mpi_rank(): from mpi4py import MPI comm = MPI.COMM_WORLD return comm.Get_rank() mpi_rank() mpi_rank.block = False ar = mpi_rank() ar.get_dict() %%px from mpi4py import MPI comm = MPI.COMM_WORLD size = comm.Get_size() rank = comm.Get_rank() if rank == 0: data = [(i+1)**2 for i in range(size)] else: data = None data = comm.scatter(data, root=0) assert data == (rank+1)**2, 'data=%s, rank=%s' % (data, rank) view['data']