charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- From: Evghenii Gaburov <e-gaburov AT northwestern.edu>
- To: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
- Subject: [charm] load ballancing Issue AtSync()
- Date: Mon, 3 Oct 2011 16:51:27 +0000
- Accept-language: en-US
- List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
- List-id: CHARM parallel programming system <charm.cs.uiuc.edu>
Hi All,
I have the following issue with the load balancing.
In the code below in myClass2 constructor, if usesAtSync = CmiTrue, the load
balancer blocks (ResumeFromSync is never called on myClass1). If in myClass2,
usesAtSync is not set to CmiTrue, myClass1:ResumeFromSync() is called and the
program successfully exits.
Is there something I am doing wrong? In my code, I have two (and in future
will have more) arrays, and only one of them I would like to migrate via
AtSync mode (not periodic).
The source file of complete test program is here
http://darkstar.astro.northwestern.edu/charm/lbtest.tar.gz
Thanks for help!
Cheers,
Evghenii
Main::Main()
{
....
arrayProxy1 = CProxy_myClass1::ckNew(128);
arrayProxy2 = CProxy_myClass2::ckNew(128);
thisProxy.doSimulation() /* this is threaded method */
}
void Main::doSimulation()
{
arrayProxy1.startLB(CkCallbackResumeThread()));
CkExit();
}
void myClass1::startLB(CkCallback&cb)
{
mainCb = cb;
AtSync();
}
void myClass1::ResumeFromSync()
{
contribute(mainCb);
}
myClass1::myClass1()
{
usesAtSync = CmiTrue;
}
myClass2::myClass2()
{
#if 1
usesAtSync = CmiTrue;
#endif
}
--
Evghenii Gaburov,
e-gaburov AT northwestern.edu
- [charm] load ballancing Issue AtSync(), Evghenii Gaburov, 10/03/2011
Archive powered by MHonArc 2.6.16.