[Commits] [svn:einsteintoolkit] Workshop_Summer_2013/ (Rev. 2)
rhaas at tapir.caltech.edu
rhaas at tapir.caltech.edu
Tue Jul 23 13:33:22 CDT 2013
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
___________________________________________________________________
More information about the Commits
mailing list