#------------------------------------------------------------------------------- # Imports #------------------------------------------------------------------------------- import time import numpy import IPython.kernel.magic from IPython.kernel import client from IPython.kernel.error import * mec = client.MultiEngineClient() #------------------------------------------------------------------------------- # Setup #------------------------------------------------------------------------------- mec.reset() # print mec.keys() mec.activate() # mec.block=True mec.get_ids() n = len(mec) assert n >= 4, "Not Enough Engines: %i, 4 needed for this script"%n mec.block=False pr1 = mec.execute('import time') pr2 = mec.execute('time.sleep(5)') pr3 = mec.push(dict(a=10,b=30,c=range(20000),d='The dog went swimming.')) pr4 = mec.pull(('a','b','d')) print "Try a non-blocking get_result" assert pr4.get_result(block=False, default='not done')=='not done' print "Now wait for all the results" mec.barrier((pr1,pr2,pr3,pr4)) print "The last pull got:", pr4.r