[Carpet] IOBasic output issues

Erik Schnetter schnetter at cct.lsu.edu
Tue Sep 19 17:07:56 CEST 2006


On Sep 19, 2006, at 07:47:46, Wolfgang Kastaun wrote:

> Hi !
> I have some minor problems with CarpetIOBasic:

> -If I try to reduce variables which are only computed when  
> triggered by
>  some IO method, they are NOT triggered by the reduction, but the
>  last computed version is reduced. I guess this is a feature, but it
>  would be handy if CarpetIOBasic reduction operations could
>  optionally trigger the computation of such variables as well.

Yes, this is annoying.  The problem is that CarpetIOBasic operates in  
global mode, because it  needs to reduce over the whole grid  
hierarchy.  The Cactus trigger mechanism works in level mode.  The  
latter is done by the flesh, so Carpet cannot easily do something  
about it.

Maybe it is possible to schedule some of the analysis routines  
slightly differently, e.g. in global loop-local mode or so.  I'll  
have to think about that.  There are also problems with memory  
management; the flesh allocates and deallocates storage also in local  
mode.

Finally, if you request output at a time when not all levels are  
aligned, then the reduction operation needs to interpolate in time,  
requiring the analysis quantity to be calculated at other times than  
the time at which it should be output.

One working way around this is to calculate the analysis quantities  
in the evol bin, allocating three time levels for these quantities.   
This requires more storage and more computations than is ideal.

I think the "triggers" mechanism is too simplistic for mesh  
refinement with subcycling in time.  It may need to be extended.

> -If I perform 1D/2D runs with no ghostzones in  one or two directions,
>  and demand reductions of variables which are only computed when
>  triggered by an IO routine, I get:
>  build/CarpetReduce/reduce.cc:1103: int CarpetReduce::ReduceGVs 
> (const cGH*, int, int, int, void*, int,
>  const int*, const CarpetReduce::reduction*):
>  Assertion `nghostzones[d]>=0 && 2*nghostzones[d]<=lsh[d]' failed.
>  Maybe this is connected to the problem above.

This seems unrelated to me.  If you have zero ghost zones, then the  
assertion should succeed.  What are the values of nghostzones and of  
lsh at these lines?

> -Since the last update, I am flooded with timing statistics. Could  
> we make
>  Carpet::print_timestats_every = 0 the default, so one does not  
> have to change
>  all .par-files ?

That should be possible.

-erik

-- 
Erik Schnetter <schnetter at cct.lsu.edu>

My email is as private as my paper mail.  I therefore support encrypting
and signing email messages.  Get my PGP key from www.keyserver.net.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : /archives/developers/attachments/20060919/47965aa9/attachment.pgp 


More information about the developers mailing list