%pylab inline from IPython.parallel import Client c = Client() dv = c[:] dv.block = False def publish_it(): from IPython.zmq.datapub import publish_data publish_data(dict(a='hi')) ar = dv.apply_async(publish_it) ar.data def simulation_loop(): from IPython.zmq.datapub import publish_data import time import numpy as np for i in range(10): publish_data(dict(a=np.random.rand(20), i=i)) time.sleep(1) ar = dv.apply_async(simulation_loop) data = ar.data for i, d in enumerate(data): plot(d['a'], label='engine: '+str(i)) title('Data published at time step: ' + str(data[0]['i'])) legend()