User: rhaas Date: 2013/07/26 01:31 AM
Added: /et_intro_details/ Makefile, et_intro_details.tex
Log: add current state of detailed et intro
File Changes:
Directory: /et_intro_details/ =============================
File [added]: Makefile Delta lines: +10 -0 =================================================================== --- et_intro_details/Makefile (rev 0) +++ et_intro_details/Makefile 2013-07-26 06:31:31 UTC (rev 11) @@ -0,0 +1,10 @@ +all: et_intro_details.pdf + +%.pdf: %.tex + pdflatex $* + +clean: + /bin/bash -exec "rm -f et_intro_details.{aux,log,nav,out,snm,pdf,toc} *~" + +.PHONY: all clean +
File [added]: et_intro_details.tex Delta lines: +220 -0 =================================================================== --- et_intro_details/et_intro_details.tex (rev 0) +++ et_intro_details/et_intro_details.tex 2013-07-26 06:31:31 UTC (rev 11) @@ -0,0 +1,220 @@ +\input{../preamble.tex} +\usepackage{ragged2e} +\usepackage{amsmath} +\usepackage{listings} +\usepackage{scrextend} +\newcommand{\Heaviside}{\operatorname{\Theta}} + +\title[ET details]{Introduction to the Einstein Toolkit -- Details} +\author{Roland Haas\ +\scriptsize TAPIR, Caltech} +\date{July 26\textsuperscript{th} 2013} + +%\usecolortheme[RGB={200,200,200}]{structure} +\usecolortheme[RGB={132,186,75}]{structure} +\definecolor{cactusgreen}{RGB}{132,186,75} +\newcommand{\red}[1]{\textcolor{cactusgreen}{#1}} +\newcommand{\black}[1]{\textcolor{black}{#1}} + +\begin{document} + +\begin{frame} +\titlepage +\end{frame} + +\begin{frame} +\frametitle{Einstein Toolkit main components} +Toolkit is based on three core components +\begin{labeling}{Simulation Factory} +\item[\red{Cactus}] provides the numerical framework and defines interfaces for +codes from different authors to interact with each other +\item[\red{GetComponents}] downloads modules the make up a simulation code +\item[\red{Simulation Factory}] unified user interface to start and manage +simulations on a variety of machines -- from laptops to supercomputers +\end{labeling} +\end{frame} + +\begin{frame} +\frametitle{What is Cactus?} +Cactus is +\begin{itemize} +\item<1-> a framework for developing portable, modular applications +\item<2-> focusing, although not exclusively, on high-performance simulation +codes +he other modules +\item<3-> separate concerns: designed to allow experts in different fields to develop modules based +upon their experience and to use modules developed by experts in +other fields with minimal knowledge of the internals or operation of +the other modules +\item<4-> mature $\ge12$ years of development +\end{itemize} +\end{frame} + +\frame { \frametitle{Cactus Goals} + \begin{itemize} + \item<1-> Portable + \begin{itemize} + \item Different development machines + \item Different production machines + \end{itemize} + \item<2-> Modular + \begin{itemize} + \item Standard interfaces for module interaction for easier + code interaction, writing and debugging + \item Interchangeable modules with same functionality + \end{itemize} + \item<3-> Easy to use + \begin{itemize} + \item Good documentation + \item Try to let users program the way they are used to + \item Support all major (HPC) programming languages + \end {itemize} + \end{itemize} } + +\begin{frame} +\frametitle{Flesh} + \begin{itemize} + \item The \textbf{flesh} is the central component of Cactus. It interfaces + with modular components called \textbf{thorns}. The flesh provides: + \begin{columns}[t] + \column{.6\textwidth} + \begin{itemize} + \item Variables & Data Types + \item Parameters + \item Functions for: + \begin{itemize} + \item Parallelisation + \item Input/Output + \item Coordinates + \item Reduction + \item Interpolation + \item Information + \end{itemize} + \item Staggering + \begin{itemize} + \item Indexing + \item Ghostzones + \end{itemize} + \end{itemize} + + \column{.3\textwidth} + \begin{center} + \begin{figure}[h] + \includegraphics[width=40mm]{cactusflesh} + \end{figure} + \end{center} + \end{columns} + \end{itemize} +\end{frame} + +\begin{frame} \frametitle{Thorns} + \begin{itemize} + \item Some thorns provide additional functionality, while others serve as applications. + \item Thorns are grouped into \textbf{arrangements} which supply some common functionality. + \item Example thorns: + \ \vspace{12pt} + \small + \begin{tabular}{ll} + \textit{EinsteinInitialData} & initial data \ + \ \textbf{TwoPunctures} & initial data for binary black holes\ + \ \textbf{TOVSolver} & initial data for single spherical star\ + \textit{Carpet} & adaptive mesh refinement driver\ + \ \textbf{Carpet} & simulation driver, adaptive mesh refinement\ + \ \textbf{CarpetIOHDF5} & 1d, 2d, 3d output to HDF5\ + \textit{EinsteinAnalysis} & extract data from simulation\ + \ \textbf{WeylScal4} & computes gravitational wave content\ + \ \textbf{Multipole} & decompose into spherical harmonic modes\ + \end{tabular} + \end{itemize} +\end{frame} + +\begin{frame}[containsverbatim] \frametitle{Directory structure} + + \begin{alltt} +Cactus +|-- doc +| |-- UsersGuide.pdf +| `-- ReferenceManual.pdf +|-- configs +| |-- sim +| `-- sim-debug +|-- src +|-- repos +|-- simfactory +`-- arrangements + |-- EinsteinInitialData + | `-- TwoPunctures + `-- Carpet + `-- CarpetIOHDF5 +\end{alltt} +\end{frame} + +\begin{frame} \frametitle{GetComponents -- why?} + +\begin{itemize} +\item $\sim 100$ thorns used for simulation +\item Thorns come from a variety of sources: \texttt{git}, \texttt{svn}, \texttt{cvs}, \texttt{darcs}, \ldots +\item Multiple access levels: publicly available, password required +\item Multiple thorns per repository? Separate documentation? Example files? +\item Specific code version, release date +\end{itemize} + +\end{frame} + +\begin{frame} \frametitle{GetComponents -- what?} + +\begin{itemize} +\item (parallised) download of modules from source code repositories +\item access to sub-parts of repositories +\item assemble directory structure +\item simplify update of modules +\item show local changes in all thorns +\item operates on \texttt{thornlist} describing collection of thorns +\end{itemize} + +\end{frame} + +\begin{frame}[containsverbatim] \frametitle{GetComponents -- how?} +\scriptsize\begin{alltt} +!CRL_VERSION = 1.0 + +!DEFINE ROOT = Cactus +!DEFINE ARR = $ROOT/arrangements + +!TARGET = $ROOT +!TYPE = svn +!AUTH_URL = https://svn.cactuscode.org/flesh/trunk +!CHECKOUT = Cactus +!NAME = . + +!TARGET = $ARR +!TYPE = git +!AUTH_URL = carpetgit@carpetcode.org:carpet +!URL = git://carpetcode.org/carpet +!CHECKOUT = Carpet/doc +Carpet/Carpet +Carpet/CarpetIOHDF5 +\end{alltt} +\end{frame} + +\begin{frame} \frametitle{Simulation Factory} + The Simulation Factory: + \begin{columns} + \column{0.25\textwidth} + \includegraphics[width=\textwidth]{pics/factory.png} + \column{0.75\textwidth} + \begin{itemize} + \item Command-line tools for setting up Cactus distribution + and managing simulations on a variety of supercomputers, + including most of the TeraGrid machines. + \end{itemize} + \end{columns} + \begin{itemize} + \item Captures the best practices of experienced users, ensuring + repeatable and well-documented scientific results. + \item Developed by Erik Schnetter and Michael Thomas. + \item Included in Cactus-OS distro: {\tt Cactus/simfactory}. + \item For more, see: {\tt http://simfactory.org%7D + \end{itemize} +\end{frame} +\end{document}
commits@lists.einsteintoolkit.org