User: knarf Date: 2012/04/01 01:20 PM
Modified: /hpc_intro/ hpc_intro.tex
Log: basic text for hpc intro
File Changes:
Directory: /hpc_intro/ ======================
File [modified]: hpc_intro.tex Delta lines: +97 -5 =================================================================== --- hpc_intro/hpc_intro.tex 2012-04-01 16:38:39 UTC (rev 18) +++ hpc_intro/hpc_intro.tex 2012-04-01 18:20:46 UTC (rev 19) @@ -2,9 +2,9 @@ \usepackage{ragged2e} \usecolortheme[RGB={200,200,200}]{structure}
-\subtitle[Introduction to HPC]{{\large Einstein Toolkit Workshop}\*[0.3em]Introduction to High-Performance-Computing} +\subtitle[Introduction to HPC]{{\large Einstein Toolkit Workshop}\*[0.3em]Introduction to High-Performance-Computing (HPC)} \author[\mbox{\includegraphics[height=0.6em]{fl_300}\hspace{0.5em}Frank Löffler}]{Dr Frank Löffler} -\date{Apr 04 2012} +\date{Apr 03 2012}
\begin{document}
@@ -33,7 +33,7 @@
\frame{\frametitle{Examples} \begin{itemize} - \item Smimulation of physical phenomena + \item Simmulation of physical phenomena \begin{itemize} \item Climate modeling \item Galaxy formation @@ -86,7 +86,7 @@
\frame{\frametitle{But I am just a computer scientist} \begin{itemize} - \item Don't worry: since most people in HPC are not, you have an advantage from the start + \item Don't worry: since most people in HPC are not, you are very valuable \item Skills you need: \begin{itemize} \item Common sense @@ -103,7 +103,7 @@
\frame{\frametitle{HPC is pragmatic} \begin{itemize} - \item Performance is not always what matters: Time to solution is + \item Performance is not always what matters: time to solution is. \item Practical experience is most important \item Leveraging existing solutions is preferred over inventing new ones \item A good solution today is often worth more than a better solution tomorrow @@ -111,4 +111,96 @@ \end{itemize} }
+\frame{\frametitle{How to get a faster answer?} + \begin{itemize} + \item Work harder + \begin{itemize} + \item Get faster hardware + \end{itemize} + \item Work smarter + \begin{itemize} + \item Use optimized algorithms (libraries) + \item Write faster code (optimize for hardware) + \item trade convenience for performance (compilation vs. script) + \end{itemize} + \item Devide and conquer + \begin{itemize} + \item Parallelize code + \item Utilize accelarators (GPGPU) + \end{itemize} + \end{itemize} +} + +\frame{\frametitle{What determines performance?} + \begin{itemize} + \item CPU speed + \item I/O speed + \item How well can work be split into pieces? + \begin{itemize} + \item very problem specific + \item run benchmarks to understand program behavior + \item know about Amdahl's law + \end{itemize} + \end{itemize} +} + +\frame{\frametitle{How is performance measured?} + \begin{itemize} + \item For numeric operations: FLOP/s + \item Theoretical peak + \begin{itemize} + \item clock rate $\times$ number of double precision operations per clock cycle + \item can in practice not be reached + \end{itemize} + \item Sustained (real) performance + \begin{itemize} + \item very application dependent + \item Top500 uses Linpack (linerar algebra) + \end{itemize} + \end{itemize} +} + +\frame{\frametitle{Performance of supercomputing applications} + \begin{itemize} + \item Strong scaling: fixed problem set; measure speedup depending on amount of + used resources + \item Weak scaling: fixed ratio of problem set / resource, measure if speed stays + constant + \item Linpack: weak scaling test: $50%-80%$ peak + \item Weather forcast: strong scaling: typical $<10%$ peak (similar for many others) + \end{itemize} +} + +\frame{\frametitle{What is Cluster?} + A cluster consists of: + \begin{itemize} + \item Several computers (nodes), often in special cases + \item One or more networks (interconnects) + \item Software for communication between nodes (e.g. MPI) + \item Software to reserve resources to individual users + \end{itemize} + A cluster is: one big computer formed by these components. +} + +\frame{\frametitle{Parallel Programming} + \begin{itemize} + \item MPI + \begin{itemize} + \item Message Passing Interface + \item Node-to-node communication + \end{itemize} + \item OpenMP + \begin{itemize} + \item Based on threads + \item Within-node communication + \end{itemize} + \item OpenCL/OpenACC/CUDA + \begin{itemize} + \item Accelerator Hardware (CPU/GPU/FPGA/...) + \item Usually within-node usage + \end{itemize} + \item Typical: Mix (Hybrid) + \end{itemize} +} + \end{document}