[Carpet] cost of repeated calls on CCTK_SyncGroup()
Bela Szilagyi
szilagyi at aei.mpg.de
Thu Jun 29 11:44:00 CEST 2006
> You can always call CCTK_SyncGroup instead of synchronising with the
> scheduler. However, this does not make things more efficient.
Yes, I am well aware of this.
>> Given that (as directed by MoL) some of
>> the sync calls prefer no prolongation, the question comes whether this
>> collective syncing function honors the prolongation switch or not.
>> No major issue here, but perhaps a gain on the syncronization itself.
> I don't know what you mean by "prefer no prolongation". It is always
> correct to prolongate, it is only an optimisation to not prolongate
> if it is not necessary. It is in general difficult to know whether
> this optimisation leads to correct results.
What I am referring to is the use of EnableProlongating() from within MoL.
> Yes, the collective syncing function CCTK_SyncGroupsI honours the
> prolongation switch. All synchronisation functions do.
From what I understand
Carpet::SyncProlongateGroups (const cGH* cctkGH, const vector<int>& groups)
will not be reached from CCTK_Sync* calls.
If so, then can we
1) modify the flesh CCTK_SyncGroupsI function to call
Carpet::SyncProlongateGroups once rather than calling Carpet::SyncGroup a
nubmer of times, in case multiple groups are lined up for syncronization
and/or
2) provide a simple (aliased function) interface to
Carpet::SyncProlongateGroups.
I would expect that 2) is quicker, though 1) is preferred. I guess "best"
would be both.
Bela.
--
Bela Szilagyi
Max-Planck-Institut für Gravitationsphysik
Albert-Einstein-Institut
Tel: +49 331 567 7632
Fax: +49 331 567 7649
More information about the developers
mailing list