[Carpet] when does Carpet call scheduled routines?

Jonathan Thornburg jthorn at aei.mpg.de
Tue May 2 20:41:45 CEST 2006


>> You wrote (with line numbers added so I can refer to things below)
>> 
>> 1> do-meta-mode = true
>> 2> loop over all models
>> 3>     do-global-mode = true
>> 4>     walk over all levels using the Berger-Oliger scheme
>> 5>        foreach scheduled routine S encountered as we walk the schedule 
>> tree
>> 
>> I'm still a bit unsure about how these walks (your lines 4 and 5)
>> interact with the Cactus schedule as specified in schedule.ccl.
>> 
>> As I now understand it, ignoring multi-models (which you explained
>> clearly in a previous msg) the top-level control (= walking-sequence
>> of schedule bins) is that of your line 4, described in detail in
>>  Carpet/doc/schedule.tex .
>
> Correct.
>
>> Then within each schedule bin, the flesh topological-sorts scheduled
>> routines based on BEFORE, AFTER, and WHILE clauses as specified in
>> the union of all active thorns' schedule.ccl files.  This gives a
>> sequence of scheduled routines.
>> 
>> This is then precisely the sequence which your line 5 loops over.
>> 
>> Is this correct?
>
> Correct.  This is, in fact, the surprising part, namely that the schedule 
> (including its before, after, and while statements) only refer to other 
> schedule items at the same level; what happens between levels is governed by 
> the Berger-Oliger scheme, not by the schedule.

I'm confused by the word "level" in the previous sentence.  Did you
mean "Cactus-flesh-defined schedule bin"?


I asked
>> If I order the modes META > GLOBAL > LEVEL > SINGLEMAP > LOCAL,
>> then is it correct to say that
>>   OPTIONS: X LOOP-Y
>> is only meaningful when Y < X?
>
> This is correct.
>
>> If X <= LEVEL, then the semantics seem to be identical to
>>   OPTIONS: Y
>> Is this correct?
>
> No.  (Did you intend to say "X <= Y" instead?)

No, I was asking whether (for example)
   OPTIONS: LEVEL LOOP-LOCAL
and/or
   OPTIONS: SINGLEMAP LOOP-LOCAL
are identical in their semantics to
   OPTIONS: LOCAL
since in each
* the scheduled routine is called in LOCAL mode in a loop
   over all models, levels, components, and patches, and
* the do-(meta|global)-mode flags are not involved in determining
   whether or not it is called.

> The case X < Y is disallowed.  The case X = Y is identical to omitting 
> LOOP-Y.

Ok, this makes sense.

ciao,

-- 
-- Jonathan Thornburg <jthorn at aei.mpg.de>
    Max-Planck-Institut fuer Gravitationsphysik (Albert-Einstein-Institut),
    Golm, Germany, "Old Europe"     http://www.aei.mpg.de/~jthorn/home.html
    "Washing one's hands of the conflict between the powerful and the
     powerless means to side with the powerful, not to be neutral."
                                       -- quote by Freire / poster by Oxfam




More information about the developers mailing list