aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetWeb/version-4.html
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetWeb/version-4.html')
-rw-r--r--Carpet/CarpetWeb/version-4.html220
1 files changed, 220 insertions, 0 deletions
diff --git a/Carpet/CarpetWeb/version-4.html b/Carpet/CarpetWeb/version-4.html
new file mode 100644
index 000000000..97e21c741
--- /dev/null
+++ b/Carpet/CarpetWeb/version-4.html
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="ISO-8859-15"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
+ <title>Carpet Version 4</title>
+ </head>
+
+ <body>
+ <h1>Carpet Version 4</h1>
+
+ <p>Version 4 will be the next release of Carpet, which is still
+ under development. This page describes the current state of the
+ development version and lists the changes from Version 3.</p>
+
+ <p>Main contributors to this version were, so far,
+ <a href="http://www.cct.lsu.edu/~eschnett/">Erik Schnetter</a>
+ (LSU),
+ <a href="http://www.aei.mpg.de/~tradke/">Thomas Radke</a> (AEI), and
+ <a href="http://proteus.as.arizona.edu/~cott">Christian D. Ott</a>
+ (UA). Special thanks go to Luca Baiotti, Denis Pollney, Christian
+ Reisswig, Jian Tao, and also to
+ the <a href="http://www.cct.lsu.edu/numerical/">CCT numerical
+ relativity group</a>, the <a href="http://numrel.aei.mpg.de/">AEI
+ numerical relativity group</a>, and
+ the <a href="http://www.cct.lsu.edu/~gallen/XiRelWeb/XiRel.html">XiRel
+ collaboration</a>.</p>
+
+
+
+ <h2>Major changes</h2>
+
+ <ul>
+ <li><p>The data structures and algorithms storing and handling
+ the communication schedule are much more efficient on large
+ numbers (several hundred or more) processors. This makes Carpet
+ scale to more than 8,000 cores.</p></li>
+
+ <li><p>The interface for defining and making dynamic changes to
+ grid hierarchies is simpler, and buffer zones are handled in a
+ cleaner manner. This makes it easier to write user code which
+ defines or updates the grid hierarchy, and reduces the chance of
+ inconsistencies therein.</p></li>
+
+ <li></p>During checkpointing and recovery, the grid structure is
+ saved and restored by default. This avoids accidental changes
+ upon recovery.</p></li>
+
+ <li></p>The efficiency of I/O has been increased, especially for
+ HDF5 based binary I/O. It is possible to combine several
+ variables into one file to reduce the number of output
+ files.</p></li>
+
+ <li></p>A new thorn LoopControl offers iterators over grid
+ points, implemented as C-style macros. These iterators allow
+ additional important loop-level optimisations, such
+ as <a href="http://en.wikipedia.org/wiki/Loop_tiling">loop
+ tiling</a> or
+ <a href="http://www.openmp.org/">OpenMP</a> parallelisation.
+ Efficient cache handling and hybrid communication models have a
+ large potential for performance improvements on current and
+ future architectures.</p></li>
+ </ul>
+
+
+
+ <h2>Changes in Detail</h2>
+
+ <h3>Initial Data</h3>
+
+ <ul>
+ <li><p>The parameter <code>Carpet::enable_all_storabe</code> is
+ off by default, reducing memory usage. This can uncover hidden
+ errors in schedule.ccl files. You can use poisoning
+ (<code>Carpet::poison_new_timelevels = yes</code>) to find these
+ problems.</p></li>
+
+ <li><p>The parameter <code>Carpet::regrid_in_level_mode</code>
+ is on by default. This balances the load more efficiently
+ between processors, especially for multi-patch
+ simulations.</p></li>
+
+ <li><p>Carpet requires thorn InitBase. This allows Carpet to
+ check whether its handling of initial data is consistent with
+ other thorns, assuming that the other thorns also use InitBase.
+ A new parameter <code>Carpet::init_fill_timelevels</code>
+ instructs Carpet to initialise all past time levels by making
+ copies of the current time level, very similar to
+ what <code>MoL::initial_data_is_crap</code> does.</p></li>
+
+ <li><p>Buffer zones are specified differently. Buffer zones are
+ enabled by setting <code>use_buffer_zones</code>, and outer
+ buffer zones are now the default. (Outer buffer zones are added
+ to the outside of the refined levels, instead of taking away
+ grid points from the interior of the refined levels.) The
+ necessary number of buffer zones is calculated automatically if
+ thorn MoL is used for time evolution.</p></li>
+
+ <li><p>There are new schedule
+ bins <code>CCTK_PREREGRIDINITIAL</code>
+ and <code>CCTK_POSTREGRIDINITIAL</code>, called before and after
+ regridding during initial data setup, respectively. As a rule
+ of thumb, routines scheduled in <code>CCTK_BASEGRID</code> must
+ also be scheduled in both <code>CCTK_POSTREGRID</code>
+ and <code>CCTK_POSTREGRIDINITIAL</code>. You can use poisoning
+ (see above) to catch errors in your schedule.ccl files.</p></li>
+ </ul>
+
+ <h3>Grid Structure</h3>
+
+ <ul>
+ <li><p>Thorn CarpetRegrid2 stores its state in grid variables
+ instead of in parameters. This makes it easier to modify the
+ grid hierarchy from other thorns, and is automatically
+ consistent upon checkpointing and recovery. It also simplifies
+ outputting the grid structure to files. These state variables
+ can be modified at any time, but their values are only
+ significant during regridding.</p></li>
+
+ <li><p>There is a new
+ parameter <code>CarpetRegrid2::symmetry_rotating180</code>,
+ which forces the generated grid structure to have the correct
+ symmetry for a 180 degree rotational symmetry about
+ the <code>z</code> axis. (It is unfortunate that errors in the
+ symmetry of the grid structure do not lead to errors but are
+ currently silently ignored. You can use poisoning -- see above
+ -- to catch errors in the grid structure.) A
+ parameter <code>CarpetRegrid2::symmetry_rotating90</code> is
+ planned, but not yet implemented.</p></li>
+
+ <li><p>Checkpointing saves and restores the grid structure by
+ default.</p></li>
+ </ul>
+
+ <h3>I/O</h3>
+
+ <ul>
+ <li><p>All Carpet I/O thorns support the new
+ parameter <code>one_file_per_group</code>, which combines all
+ variables from a variable group into a single file. This
+ reduces the number of output files.</p></li>
+ </ul>
+
+ <h3><Communication, Mesh Refinement</h3>
+
+ <ul>
+ <li><p>The algorithm determining the communication schedule is
+ new and much more fussy. It will detect all (one hopes)
+ inconsistencies in the grid structure. (Note that this does
+ unfortunately not include errors regarding the outer or symmetry
+ boundaries.)</p></li>
+
+ <li><p>The communication schedule is stored in a compressed
+ (sparse) form. This is necessary since the communication
+ schedule between N processors has N<sup>2</sup> entries, which
+ cannot be handled efficiently in full.</p></li>
+
+ <li><p>The prolongation operators have been rewritten. Time
+ interpolation is now handled separately, reducing the number of
+ operators.</p></li>
+
+ <li><p>Some unused CarpetLib parameters have been removed, some
+ new CarpetLib parameters have been introduced. The default
+ settings should be reasonable.</p></li>
+ </ul>
+
+ <h3>New Thorns</h3>
+
+ <ul>
+ <li><p>Carpet uses the new
+ thorn <code>CactusBase/InitBase</code>. Update from the Cactus
+ CVS repository to obtain this thorn.</p></li>
+
+ <li><p>A new thorn <code>Carpet/CarpetMask</code> can be used to
+ exclude certain regions, such as e.g. the interior of black
+ holes, from global reduction operations. This allows meaningful
+ norms of constraints
+ when <a href="http://arxiv.org/abs/0707.3101">Turduckened</a>
+ initial data are used.</p></li>
+
+ <li><p>Carpet offers a new thorn <code>Carpet/LoopControl</code>
+ providing iterators over grid points. These iterators are
+ implemented as C-style macros which can replace <code>for</code>
+ or <code>do</code> loops over grid functions. LoopControl
+ provides loop tiling for increased cache efficiency, and OpenMP
+ parallelisation to reduce parallelisation overhead on multi-core
+ machines.</p></li>
+ </ul>
+
+
+ <hr />
+
+ <p>Go back to the <a href=".">Carpet home page</a>.</p>
+
+ <hr />
+
+ <p>
+ <a href="http://www.xemacs.org/About/created.html"><img
+ src="cbxSmall.jpg" alt="Created with XEmacs!" height="36"
+ width="100" /></a>
+
+ <a href="http://www.anybrowser.org/campaign/"><img
+ src="logoab8.png" alt="Best Viewed With Any Browser" height="31"
+ width="88" /></a>
+
+ <a href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml10"
+ alt="Valid XHTML 1.0!" height="31" width="88" /></a>
+ </p>
+
+ <hr />
+ <address><a href="mailto:schnetter@cct.lsu.edu">Erik Schnetter</a></address>
+<!-- Created: Sat Mar 01 2008 -->
+<!-- hhmts start -->
+Last modified: Sat Mar 01 2008
+<!-- hhmts end -->
+ </body>
+</html>