[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