def main(args): home_pes = Future() array = Array(Test, charm.numPes() * 4, args=[home_pes], useAtSync=True) charm.thisProxy.updateGlobals( { 'all_created': True, 'arrayElemHomeMap': home_pes.get() }, '__main__', awaitable=True).get() array.start()
def main(args): numChares = charm.numPes() * 10 a = Array(Test, numChares) g = Group(Test) charm.awaitCreation(a, g) f1 = Future() f2 = Future() a.start(f1) g.start(f2) f1.get() f2.get() exit()
class Main(Chare): def __init__(self, args): assert charm.numPes() > 1 numChares = charm.numPes() * CHARES_PER_PE self.workers = Array(Worker, numChares, args=[numChares]) print('WORK_TIME=', WORK_TIME) qdGroupReceivers = Group(QDReceiver, args=[self.thisProxy]) qdArrayReceivers = Array(QDReceiver, charm.numPes(), args=[self.thisProxy]) charm.awaitCreation(self.workers, qdGroupReceivers, qdArrayReceivers) self.testQD(callback=self.thisProxy.recvQD) self.testQD(callback=qdGroupReceivers.recvQD) self.testQD(callback=qdArrayReceivers.recvQD) self.testQD(callback=qdGroupReceivers[1].recvQD) self.testQD(callback=qdArrayReceivers[1].recvQD) self.testQD(callback=Future()) self.testQD(callback=None) exit() def testQD(self, callback): self.qdReached = False check_fut = Future() t0 = time() self.workers.start() if callback is not None: charm.startQD(callback) if isinstance(callback, threads.Future): callback.get() print('QD reached') else: self.wait('self.qdReached') else: charm.waitQD() assert time() - t0 > WORK_TIME self.workers.check(check_fut) check_fut.get() def recvQD(self): print('QD reached') self.qdReached = True
def main(args): if charm.numPes() == 1: charm.abort('Run program with more than 1 PE') array_proxy = Array(Migrate, CHARES_PER_PE * charm.numPes()) array_proxy.start()
def main(args): array = Array(Test, charm.numPes() * 8, useAtSync=True) array.start()