Skip to Content.
Sympa Menu

charm - [charm] load ballancing Issue AtSync()

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

[charm] load ballancing Issue AtSync()


Chronological Thread 
  • 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.

Top of Page