#528: Use "andnot" instruction when vectorising
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Use the "andnot" instruction to reduce the number of different bit masks
that are required. Using fewer different bit masks may require fewer
registers to hold them, or fewer load instructions to access them, thus
potentially improving performance.
Do not scalarize ifpos when SSE 4.1 is not available; instead, use logical
operations to create a bit mask.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/528>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#451: Implement "dd" tensor type in symmetry conditions
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
The attached patch implements the "dd" tensor type (a full 3x3 tensor
without symmetries) in the rotating symmetries.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/451>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#540: Change case in internal auto-generated file
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: optional | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
Cactus auto-generates header files from CCL files into the
bindings/include directory. One of these files is called
${thorn}_arguments.h, which stands out because "a" is lower case. Other
auto-generated files are called e.g. ${thorn}_Schedule.h with an upper
case "S". I suggest to change "arguments" to upper case "Arguments".
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/540>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#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
#514: Regenerate code for WeylScal4
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
We need to regenerate the code for WeylScal4 with the current version of
Kranc.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/514>
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
#482: GetComponents chokes on thorn list using DOS EOL characters in !DEFINEs
---------------------------+------------------------------------------------
Reporter: rhaas | Owner: rhaas
Type: defect | Status: new
Priority: major | Milestone:
Component: GetComponents | Version:
Keywords: |
---------------------------+------------------------------------------------
the attached file uses DOS EOL conventions (ie. \r\n instead of the Unix
typical \n) gives error messages:
{{{
[rhaas3@phys44230 rhaas3]$ ./GetComponents --root dos --parallel cactus.th
Unsuccessful stat on filename containing newline at ./GetComponents line
663.
Unsuccessful stat on filename containing newline at ./GetComponents line
663.
-----------------------------------------------------------------
Checking out module: Cactus
from repository: http://svn.cactuscode.org/flesh/trunk
into: dos
as: .
-----------------------------------------------------------------
Checking out module: CactusBase/Boundary
from repository:
http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk
into: dos/arrangements
: No such file or directoryments
Warning: Could not checkout module CactusBase/Boundary
<some more of the same>
-----------------------------------------------------------------
1 components checked out.
0 components updated.
Unable to process CactusBase/Boundary
Unable to process CactusBase/CartGrid3D
Unable to process CactusBase/CoordBase
Unable to process CactusBase/InitBase
Unable to process CactusBase/IOUtil
Unable to process CactusBase/SymBase
Unable to process CactusBase/Time
Unable to process CactusNumerical/MoL
Unable to process CactusBase/LocalInterp
Unable to process CactusUtils/NaNChecker
Unable to process CactusNumerical/Periodic
Unable to process CactusUtils/Formaline
Unable to process CactusNumerical/Slab
Summary of Warnings:
Could not checkout module CactusBase/Boundary
Could not checkout module CactusBase/CartGrid3D
Could not checkout module CactusBase/CoordBase
Could not checkout module CactusBase/InitBase
Could not checkout module CactusBase/IOUtil
Could not checkout module CactusBase/SymBase
Could not checkout module CactusBase/Time
Could not checkout module CactusNumerical/MoL
Could not checkout module CactusBase/LocalInterp
Could not checkout module CactusUtils/NaNChecker
Could not checkout module CactusNumerical/Periodic
Could not checkout module CactusUtils/Formaline
Could not checkout module CactusNumerical/Slab
Time Elapsed: 0 minutes, 8 seconds
}}}
This is due to a \r which becomes part of the ARRANGEMENTS !DEFINE.
A simple solution might be for GetComponents to remove whitespace from end
of input lines via a:
{{{
diff --git a/GetComponents b/GetComponents
index 133487e..5e801f3 100755
--- a/GetComponents
+++ b/GetComponents
@@ -305,6 +305,9 @@ sub parse_list {
my @lines = <$COMPONENT_LIST>;
close($COMPONENT_LIST);
+ # convert CRNL and CR to newline (for lists generated by windows
and macs)
+ map s/(\r\n|\r)/\n/gm, @lines;
+
# handle includes
my $i = -1;
foreach my $line (@lines) {
}}}
Note that his renders the CRtoNL regex on $file below useless (I am also
not sure to what extent we need $orig_file to have the native EOL
character).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/482>
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
#537: Formaline: Use bzip2 or xz if available to compress thorn source code
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Formaline Could use bzip2 or xz if available to compress thorn source
code; this would reduce the size of the tarballs by up to a factor of 2.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/537>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit