|
|
#-------------------------------------------------------------------------------
|
|
|
# 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
|
|
|
|