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() %load_ext parallelmagic view.activate() view.block = True %autopx 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) %autopx view['data']