Skip to Content.
Sympa Menu

charm - Re: [charm] Synchronized SDAG entry

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] Synchronized SDAG entry


Chronological Thread 
  • From: Nikhil Jain <nikhil.jain AT acm.org>
  • To: Phil Miller <mille121 AT illinois.edu>
  • Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
  • Subject: Re: [charm] Synchronized SDAG entry
  • Date: Thu, 20 Mar 2014 10:34:00 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm/>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Will this work? - add a new entry method, say allToAllBodyCountDone().
This entry method is invoked by allToAllBodyCount() after it has
received all its messages, after the for loop in your code.

Whenever you call allToAllBodyCount() at other places, it is followed
by a "when allToAllBodyCountDone() { } " that blocks progress till
allToAllBodyCount() has finished?

--Nikhil

On Thu, Mar 20, 2014 at 7:45 AM, Phil Miller
<mille121 AT illinois.edu>
wrote:
> As a quick expedient, you could use CkCallbackResumeThread either directly
> with the all-to-all routine (possibly a reduction from that array after
> they're all done) or with quiescence detection (QD).
>
>
> On Thu, Mar 20, 2014 at 4:07 AM, Mustafa Abdul Jabbar
> <musbar AT gmail.com>
> wrote:
>>
>> Hello,
>> I am porting an MPI based code to a Charm++ based one without major code
>> reforms.
>> Problem is from within the array node I want to do blocking all to all
>> communication without using call backs to trigger completion, because those
>> will make the code a big mess given its current structure. I have the
>> following SDAG entry
>>
>> entry void allToAllBodyCount()
>> {
>> atomic
>> {
>> transportBodyCountToAll(); // will broadcast to all nodes
>> }
>> for(count = 0; count < numChares; ++count){
>> when transportBodyCount(int bodyCount, int sender) atomic
>> {
>> processBodyCount(bodyCount,sender);
>> }
>> }
>> }
>>
>> I am calling allToAllBodyCount() locally from the array node, and I want
>> to wait until I have processed incoming messages.
>> I have read about the [sync] methods, but there's no evidence that an SDAG
>> method can be made sync since the SDAG translates the code above to a sort
>> of Future Completion as I noticed in the generated header file
>> Any workaround?
>>
>>
>>
>> _______________________________________________
>> charm mailing list
>> charm AT cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/charm
>>
>
>
> _______________________________________________
> charm mailing list
> charm AT cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/charm
>



--
Nikhil Jain,
nikhil.jain AT acm.org,
http://charm.cs.uiuc.edu/people/nikhil
Doctoral Candidate @ CS, UIUC




Archive powered by MHonArc 2.6.16.

Top of Page