[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