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}
commits@lists.einsteintoolkit.org