Skip to Content.
Sympa Menu

charm - Re: [charm] SDAG serial blocks

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] SDAG serial blocks


Chronological Thread 
  • From: Jonathan Lifflander <jliffl2 AT illinois.edu>
  • To: Nicolas Bock <nicolasbock AT gmail.com>
  • Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
  • Subject: Re: [charm] SDAG serial blocks
  • Date: Wed, 26 Jun 2013 12:07:34 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm/>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Yes, that is almost correct. However, if serial is omitted the block
following is more SDAG code, not C++ code. So concretely, you could do
either of the following:

when method1() serial {
// C++ code
}

OR

when method1() {
when method2 () { .... }
}

Does that make sense?

Jonathan

On Wed, Jun 26, 2013 at 11:04 AM, Nicolas Bock
<nicolasbock AT gmail.com>
wrote:
> Hi Jonathan,
>
> From the examples in the manual it appears that the syntax of the when
> construct is
>
> when method() [, method2() [...]] [serial] { ...C code... }
>
> what is the difference between constructs that include the serial keyword
> and ones that don't? Isn't the suspension you mention around the when
> statement, and hence before the { ...C code... } block?
>
> nick
>
>
>
> On Tue, Jun 25, 2013 at 8:15 PM, Jonathan Lifflander
> <jliffl2 AT illinois.edu>
> wrote:
>>
>> Sorry about the belated response.
>>
>> An SDAG serial block only indicated that the block is C++ code. It has
>> no relation to threaded entry methods. The point in the manual means
>> that serial only indicated the block on code will execute without
>> preemption. Note that an SDAG entry method is different than an
>> ordinary entry method, so it can be suspended at a "when" while
>> Charm++ is waiting for incoming data.
>>
>> If you need more explanation let me know.
>>
>> Thanks,
>>
>> Jonathan
>>
>> On Wed, Jun 19, 2013 at 10:38 AM, Nicolas Bock
>> <nicolasbock AT gmail.com>
>> wrote:
>> > Hi,
>> >
>> > are SDAG serial blocks only necessary for threaded entry methods?
>> >
>> > Since "ordinary entry methods are completely non-preemptive" (p. 8,
>> > Charm++
>> > Manual), I don't otherwise understand the statement: "atomic code [...]
>> > without returning control to the Charm++ runtime scheduler" (p. 28,
>> > Charm++
>> > Manual).
>> >
>> > Thanks already,
>> >
>> > nick
>> >
>> >
>> > _______________________________________________
>> > charm mailing list
>> > charm AT cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/charm
>> >
>
>




Archive powered by MHonArc 2.6.16.

Top of Page