[Commits] [svn:einsteintoolkit] Paper_EinsteinToolkit_2010/ (Rev. 11)

ian.hinder at aei.mpg.de ian.hinder at aei.mpg.de
Mon Jan 24 11:06:57 CST 2011


User: hinder
Date: 2011/01/24 11:06 AM

Modified:
 /
  ET.tex

Log:
 Add initial draft of Kranc section; no citations yet

File Changes:

Directory: /
============

File [modified]: ET.tex
Delta lines: +34 -0
===================================================================
--- ET.tex	2011-01-24 15:47:29 UTC (rev 10)
+++ ET.tex	2011-01-24 17:06:57 UTC (rev 11)
@@ -308,7 +308,41 @@
 \subsection{Kranc}
 \todo{1/3 page Ian}
 
+Kranc is a Mathematica application which converts a high-level
+continuum description of a PDE into a highly optimised module for
+Cactus, suitable for running on anything from a laptop to the world's
+largest HPC systems.  Such codes contain a large amount of complexity,
+including expanded tensorial expressions, numerical methods, and the
+large amount of ``glue'' code needed for interfacing a modern HPC
+application with the underlying framework.  Kranc absorbs this
+complexity and allows a physicist to concentrate on writing only the
+Kranc script which describes the continuum equations.
 
+This approach brings with it many advantages.  With these complicated
+elements factored out, a physicist can write many different Kranc
+codes, all taking advantage of the features of Kranc and avoid
+unnecessary or trivial but painstaking duplication.  The codes might
+be variations on a theme, for example versions which use different
+sets of variables or formulations of the equations, or they could
+represent completely different physical systems.  The use of a
+symbolic algebra package, Mathematica, enables high-level
+optimisations to be implemented in Kranc which are not performed by
+the compiler.
+
+Any enhancements to Kranc can be automatically applied to all codes
+which are generated using Kranc.  Existing codes have easily benefited
+from the following features added to Kranc after the codes themselves
+were written: (i) OpenMP parallelisation support, necessary for
+efficient use of modern multi-core processors; (ii) support for
+multipatch domains with the Llama code; (iii) automatic generation of
+vectorised code, where the equations are evaluated simultaneously by
+the processor for two grid points at the same time, (iv) common
+subexpression elimination, and various other optimisation strategies.
+
+Within the Einstein Toolkit, the Einstein evolution thorn McLachlan,
+as well as the wave extraction thorn WeylScal4, are both generated
+using Kranc, and hence support all the above features.
+
 \section{Components}
 
 \subsection{Base Modules}



More information about the Commits mailing list