1# example program that sends object instances in local program 2# as arguments to distributed computation 3class C: 4 def __init__(self, i, n): 5 self.i = i 6 self.n = n 7 8 def show(self): 9 print('%s: %.2f' % (self.i, self.n)) 10 11def compute(obj): 12 # obj is an instance of C 13 import time 14 time.sleep(obj.n) 15 obj.show() 16 return obj.n 17 18if __name__ == '__main__': 19 import random, dispy 20 cluster = dispy.JobCluster(compute, depends=[C]) 21 jobs = [] 22 for i in range(10): 23 c = C(i, random.uniform(1, 3)) # create object of C 24 job = cluster.submit(c) # it is sent to a node for executing 'compute' 25 job.id = c # store this object for later use 26 jobs.append(job) 27 for job in jobs: 28 job() # wait for job to finish 29 print('%s: %.2f / %s' % (job.id.i, job.result, job.stdout)) 30