User: rhaas Date: 2013/07/23 01:33 PM
Added: /cactus_intro/ cactus_intro.tex, recompile
Log: import cactus intro from last spring workshop
Directory Changes:
Directory: /svn:executable/ ===========================
+ *
File Changes:
Directory: /cactus_intro/ =========================
File [added]: cactus_intro.tex Delta lines: +374 -0 =================================================================== --- cactus_intro/cactus_intro.tex (rev 0) +++ cactus_intro/cactus_intro.tex 2013-07-23 18:33:22 UTC (rev 2) @@ -0,0 +1,374 @@ +\input{../preamble} +\usepackage{ragged2e} +\usecolortheme[RGB={200,200,200}]{structure} + +\begin{document} + + \frame { \frametitle{What is Cactus?} + Cactus is + \begin{itemize}[<+->] + \item \textcolor{black}{a \hyperlink{framework}{framework} for developing portable, modular applications} + \item \textcolor{black}{focusing, although not exclusively, on high-performance + simulation codes} + \item \textcolor{black}{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} + \end{itemize} } + + \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} } + + \frame { \frametitle{Philosophy} + \begin{center} + \begin{figure}[h] + \includegraphics[width=30mm]{Opensource} + \end{figure} + \end{center} + \begin{itemize}[<+->] + \item Open code base to encourage community contributions + \item Strict quality control for base framework + \item Development always driven by real user requirements + \item Support and develop for a wide range of application domains + \end{itemize} } + + \frame { \frametitle{What is Cactus for?} + Assume: + \begin{itemize} + \item Computational problem + \item Too large for single machine + \begin{itemize} + \item<2-> \only<5->{\textcolor{cactusgreen}}{OpenMP} + \item<2-> \only<5->{\textcolor{cactusgreen}}{MPI} + \end{itemize} + \item Distributed development + \begin{itemize} + \item<3-> \only<5->{\textcolor{cactusgreen}}{Modularize Problem} + \item<3-> \only<5->{\textcolor{cactusgreen}}{Versioning system(s)} + \end{itemize} + \item Multiple programming languages + \begin{itemize} + \item<4-> \only<5->{\textcolor{cactusgreen}}{Modularize Problem} + \item<4-> \only<5->{\textcolor{cactusgreen}}{Interfaces for inter-language communication} + \end{itemize} + \end{itemize} + } + +\frame{\frametitle{Modularization Motivation} +Simulations are complex, may contain several models at once.\ +Example: Long Gamma Ray Burst: + \begin{columns}[t] + \column{.4\textwidth} + \begin{center} + \includegraphics[width=0.9\textwidth]{supernova_model} + \end{center} + \column{.5\textwidth} + \begin{itemize} + \item General Relativity (black hole) + \item Relativistic Hydrodynamics (star) + \item Microphysics, equation of state (shock wave) + \item Neutrino radiation (cooling, heating) + \item Magnetic Fields (Jet formation) + \item Photon radiation (afterglow) + \end{itemize} + + \end{columns} +} + +\frame{\frametitle{Modularization Motivation} + Added Problems: + \begin{itemize} + \item Example: Einstein Toolkit (not untypical) + \item Code 12+ years old + \item Grad students leave after 3 productive years + \item Most original authors not available anymore + \item Developers distributed over many places in several continents + \item Most physicists are not good programmers + \end{itemize} +} + +\frame{\frametitle{Component Architecture} + \begin{itemize} + \item Split program into independent components (as much as possible) + \item \textit{Framework} provides glue between these + \item Components are developed independently by small groups + \item End user assembles all code: no central control, no authorative version + \item Framework itself does no real work + \item Components don't interact directly with each other + \end{itemize} +} + +\frame { \frametitle{Cactus History} + \begin{itemize} + \item Direct descendant of many years of code development in Ed Seidel's group of + researchers at NCSA + \item 1995, Paul Walker, Joan Masso, Ed Seidel, and John Shalf: Cactus~1.0 + \item Originally for numerical relativity + \item Over the years generalized for use by scientists in other domains + \end{itemize} +} + +\frame { \frametitle{Current Users and Developers} + \centering + \includegraphics[height=7cm]{groups_map}\ +} + +\frame { \frametitle{Covers} + \hspace{0cm}\includegraphics[height=3.5cm]{covers/ACMCommunications} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/FutureTechPhysCosm} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/Gravity}\\vspace{-1.5cm} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/max-planck-research2} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/nsffy2006budgetcover} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/mmcover}\\vspace{-1.5cm} + \hspace{2cm}\includegraphics[height=3.5cm]{covers/visprocessingtensor} + \hspace{1.5cm}\includegraphics[height=3.5cm]{covers/PetascaleComputingBook} + \hspace{1cm}\includegraphics[height=3.5cm]{covers/NR689} +} + +\frame { \frametitle{Cactus Funding} + \begin{itemize} + \item Organizations: + \begin{itemize} + \item Max-Planck-Gesellschaft + \item Center for Computation & Technology at LSU + \item National Center for Supercomputing Applications + \item Lawrence Berkeley National Laboratory + \item Washington University + \item University of Tübingen + \end{itemize} + \item Grants: + \begin{itemize} + \item NSF (PHY-9979985, 0540374, 0653303, 0701491, 0701566, + PIF-0904015, 0903973, 0903782) + \item Europ. Commission (HPRN-CT-2000-00137, IST-2001-32133) + \item DFN-Verein (TK 6-2-AN 200) + \item DFG (TiKSL) + \item ONR (COMI) + \item DOE/BOR (OE DE-FG02-04ER46136, BOR DOE/LEQSF) + \end{itemize} + \end{itemize} +} + +% Copied from web site +\begin{frame} \frametitle{Cactus Awards} + \begin{tabular}{ll} + IEEE SCALE09 Challenge Winner & 2009\ + IEEE Sidney Fernback Award & 2006\ + High-Performance Bandwidth Challenge & SC2002\ + High-Performance Computing Challenge & SC2002\ + Gordon Bell Prize for Supercomputing & SC2001\ + HPC ``Most Stellar'' Challenge Award & SC1998\ + Heinz Billing Prize for Scientific Computing & 1998 + \end{tabular} +\end{frame} + +\begin{frame} \frametitle{The 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{CactusIO} & input and output operations\ + \ \textbf{CactusIOJpeg} & JPEG image data compression and writing operations\ + \textit{CactusConnect} & networking\ + \ \textbf{HTTPD} & starts the HTTP daemon for remote connections\ + \textit{PUGH} & unigrid driver + tools; reductions and interpolations\ + \ \textbf{PUGH} & unigrid driver handles grid scalars, arrays and functions\ + \end{tabular} + \end{itemize} +\end{frame} + + +% Should put more here. +\begin{frame} \frametitle{Application Toolkits} + \begin{columns}[t] + \column{.5\textwidth} + \begin{center} + \begin{figure} + \includegraphics[width=0.4\textwidth]{einstein} + \end{figure} + \end{center} + + \justifying The \textbf{Cactus Computational Toolkit} is a collection of + arrangements that provides general computational infrastructure. + + \column{.5\textwidth} + \justifying The \textbf{Einstein Toolkit} is a collection of arrangements for + computational relativity. The toolkit includes a vacuum spacetime solver + (McLachlan), a relativistic hydrodynamics solver, along with thorns for initial + data, analysis and computational infrastructure. + \begin{center} + \begin{figure} + \includegraphics[width=20mm]{cactuslogo} + \end{figure} + \end{center} + \end{columns} +\end{frame} + +\frame { \frametitle{Typical list of component tasks} + \abspic{puzzle}{0.0}{0.6}{0.4} + \begin{itemize} + \item Evolution systems + \item Boundary conditions + \item Initial conditions + \item Time stepping method + \item Finite Difference methods + \item Simulation grid (distributed arrays) + \item I/O (more on next slide) + \item Simulation domain specification + \item Termination condition + \item Twitter client + \end{itemize} +} + +\frame { \frametitle{I/O Capabilities} + Usual I/O and checkpointing in different formats: + \begin{columns}[t] + \column{.6\textwidth} + \begin{itemize} + \item Screen output + \item ASCII file output + \item HDF5 file in-/output + \item Online Jpeg rendering + \item Online VisIt visualization + \end{itemize} + + \column{.3\textwidth} + \begin{center} + \begin{figure}[h] + \includegraphics[width=40mm]{viz} + \end{figure} + \end{center} + \end{columns} +} + +\frame { \frametitle{More Capabilities: Grids, Boundaries, Symmetries} + \begin{columns}[t] + \column{.5\textwidth} + \begin{itemize} + \item Grids + \begin{itemize} + \item Only structured meshes (at the moment) + \item Unigrid (PUGH) + \item Adaptive Mesh Refinement (Carpet) + \end{itemize} + \item Boundaries / Symmetries + \begin{itemize} + \item Periodic + \item Static + \item Mirror symmetries + \item Rotational symmetries + \item Problemspecific boundaries + \end{itemize} + \end{itemize} + + + \column{.4\textwidth} + \begin{center} + \begin{figure}[h] + \includegraphics[width=45mm]{amr} + \end{figure} + \end{center} + \end{columns} +} + +\frame { \frametitle{The Cactus Computational Toolkit} + \begin{columns}[t] + \column{.3\textwidth} + \begin{center} + \begin{figure} + \includegraphics[height=40mm]{potcact} + \end{figure} + \end{center} + + + \column{.6\textwidth} + Core modules (thorns) providing many basic utilities: + \begin{itemize} + \item I/O methods + \item Boundary conditions + \item Parallel unigrid driver + \item Reduction and Interpolation operators + \item Interface to external elliptic solvers + \item Web-based interaction and monitoring interface + \item Simple example thorns (wavetoy) + \end{itemize} + \end{columns} +} + +\frame { \frametitle{Many arrangements with many modules...} + \begin{tabular}{ll} + CactusBase& Basic utility and interface thorns\ + CactusBench& Benchmark utility thorns\ + CactusConnect& Network utility thorns\ + CactusElliptic& Elliptic solvers / interface thorns\ + CactusExamples& Example thorns\ + CactusExternal& External library interface thorns\ + CactusIO& General I/O thorns\ + CactusNumerical& General numerical methods\ + CactusPUGH& Cactus Unigrid Driver thorn\ + CactusPUGHIO& I/O thorns specifix for PUGH driver\ + CactusTest& Thorns for Cactus testing\ + CactusUtils& Misc. utility thorns\ + CactusWave& Wave example thorns\ + \end{tabular} +} + + +\end{document} +
File [added]: recompile Delta lines: +14 -0 =================================================================== --- cactus_intro/recompile (rev 0) +++ cactus_intro/recompile 2013-07-23 18:33:22 UTC (rev 2) @@ -0,0 +1,14 @@ +#!/bin/bash + +function pdf { + NAME=$1 + pdflatex $NAME.tex + pgrep -f "xpdf -remote 127.0.0.1 $NAME.pdf" 2>&1 > /dev/null + if [ $? == 0 ]; then + xpdf -remote 127.0.0.1 -reload -raise + else + xpdf -remote 127.0.0.1 $NAME.pdf & + fi +} + +pdf cactus_intro
Property changes on: cactus_intro/recompile ___________________________________________________________________
commits@lists.einsteintoolkit.org