Skip to Content.
Sympa Menu

charm - Re: [charm] how to suspend/resume a chare ?

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] how to suspend/resume a chare ?


Chronological Thread 
  • From: Gengbin Zheng <zhenggb AT gmail.com>
  • To: Christian Perez <christian.perez AT inria.fr>
  • Cc: Filippo Gioachin <gioachin AT uiuc.edu>, "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>, "Kale, Laxmikant V" <kale AT cs.uiuc.edu>, "kale AT illinois.edu" <kale AT illinois.edu>
  • Subject: Re: [charm] how to suspend/resume a chare ?
  • Date: Wed, 26 May 2010 10:00:54 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

On Wed, May 26, 2010 at 6:37 AM, Christian Perez
<christian.perez AT inria.fr>
wrote:
> On 05/25/2010 07:22 PM, Gengbin Zheng wrote:
>>
>> Is the caller of connect() a thread (I mean is connect() a threaded
>> entry function)?
>>
>
> It is not a threaded charm method: when I tried to turn it into a [threaded]
> entry
> method it I've got an error when invoking JNI method from this chare. I
> shall investigate it later.
>>
>> another way of doing this without using thread is to send component_B
>> proxy to component_A, and let component_A directly send its proxy to
>> component_B.
>>
>
> That is the alternative solution: the good news is that it works(*),
> the not-so-good news is that it make the mapping between components
> and charm objects a litte more complex.
>
> (*) I need to use a hack that seems weird to me:
>
> Chare component_A : SimpleInterface {
>  void set_s(CProxy_SetSimpleInterface& pssi, CProxy_SimpleInterface& psi) {
>     pssi.set_si(psi);
>  }
>
> works while the following version does not work (psi is changed to
> thishandle)
>
>
> Chare component_A : SimpleInterface {
>  void set_s(CProxy_SetSimpleInterface& pssi, CProxy_SimpleInterface& psi) {
>     pssi.set_si(thishandle);
>  }
>
> psi is obtained from a call to CProxy_component_A::ckNew.
>
> Question: how can I create a Proxy from within a chare?
>
> I tried
>
>     pssi.set_si(CProxy_SimpleInterface(thishandle));
>
> but it fails with the same error :
>
> [0] Assertion "n<len" failed in file cklists.h line 221.
> ------------- Processor 0 Exiting: Called CmiAbort ------------
> Reason:
> [0] Stack Traceback:
>  [0:0] CmiAbort+0x89  [0x506ff2]
>  [0:1] __cmi_assert+0x4b  [0x514a0c]
>  [0:2] _ZN5CkVecIPvEixEm+0x36  [0x49c7a8]
>  [0:3] /opt/usr/stow/ULCMi/libexec/Charm-launcher [0x4966f9]
>  [0:4] _Z15_processHandlerPvP11CkCoreState+0x30d  [0x49712e]
>  [0:5] CmiHandleMessage+0x84  [0x50f5f1]
>  [0:6] CsdSchedulePoll+0x96  [0x50fb5f]
>  [0:7] CsdScheduler+0x23  [0x50f8bf]
>  [0:8] CthStandinCode+0xe  [0x50fc5a]
>  [0:9] CthStartThread+0x59  [0x4830b7]
>  [0:10] /lib/libc.so.6 [0x7f98d9aaf370]
> Fatal error on PE 0>
>
> Thanks for your help!
>


It is hard to eyeball errors from segmented code.
What is in set_si?
Can you build your program with -g, when it crashes again, get stack trace
like:

addr2line -e ./your_binay 0x4966f9

Can you send me the output of that for lines:

[0:2] _ZN5CkVecIPvEixEm+0x36 [0x49c7a8]
[0:3] /opt/usr/stow/ULCMi/libexec/Charm-launcher [0x4966f9]



btw, did you ever run megatest (in charm/tests/charm++/megatest)
successfully? Just wanted to make sure charm threaded entry method
indeed works on your system.

Gengbin





Archive powered by MHonArc 2.6.16.

Top of Page