Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
def main(args):
    array = Array(Test, charm.numPes() * 8, useAtSync=True)
    array.start()