#479: speed up VisIt's CarpetHDF5 plugin, set 2d masks
-------------------+--------------------------------------------------------
Reporter: rhaas | Type: enhancement
Status: new | Priority: minor
Milestone: | Component: Other
Version: | Keywords: CarpetHDF5
-------------------+--------------------------------------------------------
Hello all,
the attached patches (when all of them are applied to VisIt's CarpetHDF5
plugin) speed up opening (large) HDF5 output files in VisIt by about a
factor of 8. The two main speedups are replacing a linear search when
translating from the Cactus iteration cctk_iteration to timestep (index)
number and (surprisingly enough) the parsing of the Cactus variable name
out of the dataset name rather than the "name" attribute (but it falls
back to reading the attribute if the parsing fails). The third speed
improvement is only visible when more than one file are opened and
plotted. VisIt seems to consider reading metadata a cheap operation and
creates and destroys the metadata object (avtCarpet...) very often. The
patch caches metadata when VisIt destroys the object. This speeds up
plotting several frames (or using the timestep slider) considerably, but
has the unfortunate side effect that one cannot fully close files anymore
(re-loading still works though).
I attach timing information to show the gains. Data files and a python
script to use with visit -cli -s openfile.py are provided at
http://www.numrel.org/~rhaas3/CarpetHDF5/ . The data files are about 20MB
when compressed and about 2-4GB when decompressed (they are actual data
from one of my simulations with all values set to zero).
There are three data sets provided. "flat" is the direct output from the
Cactus simulation. "grouped" contains datasets from each timestep in a
group of their own (grouping is mostly useful when mergin hdf5 files which
is unbearably slow otherwise). "unchunked" used a python script to merge
the individual Carpet components into the CarpetRegrid2 boxes (or
equivalent), which results in much faster load times and smaller files
(but is itself a slow operation).
Code and scripts to group and unchunk hdf5 data is not yet public. If
there is interested and I can post those as well but they are not nicely
coded at all.
The last patch (actually the first two by number) changes the way
CarpetHDF5 sets up the nesting of components for 2D data so that eg.
contour plots work properly (no more duplicate lines from the coarse
points under fine points).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/479>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#443: Output a stack backtrace on a fatal error in a simulation
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
-------------------------+--------------------------------------------------
When a Cactus simulation aborts with a signal, it is often difficult to
determine which part of the code led to the problem. The attached patch
registers a signal handler on Carpet startup for signals 11 and 6
(segmentation fault and abort, e.g. from assert()) which outputs a stack
backtrace from each process to a file, including demangling symbol names.
It uses some low-level and possibly unofficial APIs, and is likely not
completely portable. However, I have tested it on Mac OS (gcc) and Linux
(intel) and it works in those places.
Part of this code was contributed by Justin Luitjens at the Carpet
developers' workshop in summer 2010.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/443>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#259: Update PETSc to 3.1p7
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
The current version of 3.1p5, the difference are probably only small bug
fixes.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/259>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#401: pysim fails to build a new configuration because of old data
------------------------+---------------------------------------------------
Reporter: knarf | Owner: mthomas
Type: defect | Status: new
Priority: major | Milestone: ET_2011_11
Component: SimFactory | Version:
Keywords: |
------------------------+---------------------------------------------------
I just tried 'sim build --thornlist=./thornlists/Cactus.th' and it failed:
Info: Simfactory command:
/nics/d/home/knarf/utils/simfactory/bin/../lib/sim.py "build" "--
thornlist=./thornlists/Cactus.th"
Info: Version 1318
The Simulation Factory: Manage Cactus simulations
Info: defs: /nics/d/home/knarf/utils/simfactory/etc/defs.ini
Info: defs.local: /nics/d/home/knarf/utils/simfactory/etc/defs.local.ini
Warning: properties.ini does not exist for simulation
IOL1_CCT_whisky_tov_1_1
Traceback (most recent call last):
File "/nics/d/home/knarf/utils/simfactory/bin/../lib/sim.py", line 142,
in ?
main()
File "/nics/d/home/knarf/utils/simfactory/bin/../lib/sim.py", line 130,
in main
restartlib.CleanupRestarts()
File "/nics/d/home/knarf/utils/simfactory/lib/restartlib.py", line 165,
in CleanupRestarts
sim_create_time = restart.GetMarkTime("simulation")
File "/nics/d/home/knarf/utils/simfactory/lib/simrestart.py", line 65,
in GetMarkTime
for fptr in os.listdir(self.InternalDir):
OSError: [Errno 2] No such file or directory:
'/lustre/scratch/knarf/simulations/IOL1_CCT_whisky_tov_1_1/SIMFACTORY'
It should not fail to build because of old data - regardless of how that
looks like.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/401>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#440: Cannot check out Carpet non-anonymously
---------------------------+------------------------------------------------
Reporter: eschnett | Owner: eric9
Type: defect | Status: new
Priority: major | Milestone:
Component: GetComponents | Version:
Keywords: |
---------------------------+------------------------------------------------
Whenever I try to check out Carpet non-anonymously using the standard
thorn list, I receive the error message
$ ./bin/GetComponents --update --root=. manifest/einsteintoolkit.th
Error: The URL for Carpet/doc has changed, please perform a clean
checkout.
(This is not a helpful error message, because the urls are not shown.)
I find that, for Mercurial, GetComponents always sets $url =
$component{"URL"}, using the anonymous url. Later it compares this url to
the url actually used to check out the repository, which is in my case
different, since I used the non-anonymous, authorized url. This leads to
an unconditional error.
The file $HOME/.crl/users does not enter, since I never enter a password
for this repository.
The only way to circumvent this problem is to modify the URL in the thorn
list to make it identical to the AUTH_URL.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/440>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#406: publication list is shuffled
-------------------------------------+--------------------------------------
Reporter: bmundim | Owner:
Type: defect | Status: new
Priority: major | Milestone: ET_2011_11
Component: EinsteinToolkit website | Version:
Keywords: |
-------------------------------------+--------------------------------------
The publication list at
http://einsteintoolkit.org/publications/
is said to be arranged by year, but at the moment it seems to be
completely shuffled.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/406>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#256: Add support for the new Lonestar
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner: mthomas
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: SimFactory | Version:
Keywords: |
-------------------------+--------------------------------------------------
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/256>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#108: LocalInterp and LocalReduce should move to CactusNumerical
-----------------------+----------------------------------------------------
Reporter: anonymous | Type: enhancement
Status: new | Priority: minor
Milestone: | Component: Cactus
Version: | Keywords:
-----------------------+----------------------------------------------------
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/108>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#203: Add shallow clone to hg
---------------------------+------------------------------------------------
Reporter: eric9 | Owner: eric9
Type: defect | Status: new
Priority: minor | Milestone:
Component: GetComponents | Version:
Keywords: |
---------------------------+------------------------------------------------
Git and darcs offer a shallow clone option (--depth 1 for git and --lazy
for darcs). Hg can accomplish a similar thing by running hg clone -r tip
URL. This should be implemented following the same rules as shallow clones
for git and darcs.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/203>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit