[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