diff --git a/' b/' new file mode 100644 index 00000000..483f0b47 --- /dev/null +++ b/' @@ -0,0 +1,637 @@ +# Introduction to HPC2N, Kebnekaise and HPC + + + +![umu-logo](images/umu-logo-left-EN.png){: style="height: 44px; float: left;"} +![naiss-logo](images/naiss.png){: style="height: 44px;"} +![hpc2n-logo](images/hpc2n-logo-text5.png){: style="height: 44px;"} + +- Welcome page and syllabus: https://hpc2n.github.io/intro-linux/index.html + - Also link at the House symbol at the top of the page. + +## HPC2N + +!!! note + + High Performance Computing Center North (HPC2N) is + + - a competence center for Scientific and Parallel Computing + - part of **National Academic Infrastructure for Super­computing in Sweden (NAISS)** + +HPC2N provides state-of-the-art resources and expertise: + +- Scalable and parallel **HPC** +- Large-scale **storage facilities** (Project storage (Lustre), SweStore, Tape) +- **Grid and cloud** computing (WLCG NT1, Swedish Science Cloud) +- National Data Science Node in ”Epidemiology and Biology of Infections” (DDLS) +- Software for e-Science applications +- All levels of user support + - Primary, advanced, dedicated + - Application Experts (AEs) + +!!! note "Primary objective" + + To raise the national and local level of HPC competence and transfer HPC knowledge and technology to new users in academia and industry. + +### HPC2N partners + +HPC2N is hosted by: + +![umu-logo](images/umu-logotyp-EN.png){: style="height: 100px;float: left;"} + +

+ +Partners: + +![irf-logo](images/irf.png){: style="height: 90px;float: left;padding: 4px;"} +![ltu-logo](images/ltu.preview.png){: style="height: 90px;padding: 4px;"} +![miun-logo](images/mid_sweden_university.png){: style="height: 90px;padding: 4px;"} +![slu-logo](images/slu_new.png){: style="height: 90px;padding: 4px;"} + +### HPC2N funding and collaborations + +Funded mainly by **Umeå University**, with contributions from the **other HPC2N partners**. + +Involved in several **projects and collaborations**: + +![essence-logo](images/essence.png){: style="height: 85px; float: left;"} +![prace-logo](images/prace.png){: style="height: 85px;"} +![algoryx-logo](images/algoryx.png){: style="height: 80px;"} + +![WLCG-logo](images/WLCG-logo.png){: style="height: 90px;"} +![eosc-nordic-logo](images/eosc-nordic.png){: style="height: 85px;"} +![eiscat-logo](images/eiscat-logo5.png){: style="height: 90px;"} +![scilifelab-logo](images/SciLifeLab.png){: style="height: 90px;"} +\hspace*{0.8cm}~\includegraphics[height=1cm]{figures/skills4eosc.png} + \end{center} +\end{itemize} +} + +\frame{ +\frametitle{HPC2N (training and other services)} + \begin{itemize} +\begin{footnotesize} + \item \emph{User support} (primary, advanced, dedicated) + \begin{itemize} +\begin{scriptsize} + \item Research group meetings @ UmU + \item Also at the partner sites + \item Online "HPC2N fika" +\end{scriptsize} + \end{itemize} + \pause \item \emph{User training and education program} + \begin{itemize} + \begin{scriptsize} + \item 0.5 -- 3 days; ready-to-run exercises + \item Introduction to HPC2N and Kebnekaise + \item Parallel programming and tools (OpenMP, MPI, debugging, perf. analyzers, Matlab, R, MD simulation, ML, GPU, \dots) + \end{scriptsize} + \begin{itemize} + \begin{scriptsize} + \item \textbf{Using Python in an HPC environment}, week 20, 2024 + \item \textbf{Introduction to running R, Python, and Julia in HPC}, 12-14 March 2024 + \item \textbf{Basic Sungularity}, 13 February 2024 + \item \textbf{Introduction to Kebnekaise}, 18 January 2024 + \item \textbf{Updated list:} https://www.hpc2n.umu.se/events/courses +\end{scriptsize} + \end{itemize} + \end{itemize} + \pause \item Workshops and seminars + \pause \item NGSSC / SeSE \& university courses +% \item<8-> Research \& Development --- Technology transfer +\end{footnotesize} +\end{itemize} +} + +\frame{ +\frametitle{HPC2N (personnel)} +\footnotesize +\begin{minipage}{0.48\textwidth} +\emph{Management} +\begin{itemize} + \item Paolo Bientinesi, director + \item Bj{\"o}rn Torkelsson, deputy director + \item Lena Hellman, administrator +\end{itemize} +\pause \emph{Application experts} +\begin{itemize} + \item Jerry Eriksson +% \item Mirko Myllykoski + \item Pedro Ojeda May +\end{itemize} +\pause \emph{Others} +: +\begin{itemize} +% \item Bo K\r{a}gstr{\"o}m + \item Mikael R{\"a}nnar (WLCG coord) +% \item Anders Backman +% \item Kenneth Bodin +% \item Claude Lacoursi\`{e}re (Algoryx) + \item Research Engineers under DDLS, HPC2N/SciLifeLab + \begin{itemize} + \item System Developer, IT + \item Data Engineer + \item Data Steward + \end{itemize} +\end{itemize} +\end{minipage} +\, +\begin{minipage}{0.48\textwidth} +\pause \emph{System and support} +\begin{itemize} + \item Erik Andersson + \item \emph{Birgitte Bryds{\"o}} +\item Niklas Edmundsson (Tape coord) + \item Ingemar F{\"a}llman + \item Magnus Jonsson + \item Roger Oscarsson + \item \emph{\r{A}ke Sandgren} + \item Mattias Wadenstein (NeIC, Tier1) + \item \emph{Lars Viklund} +\end{itemize} +\end{minipage} +} + +\frame{ +\frametitle{HPC2N (application experts)} +\begin{itemize} + \item HPC2N provides advanced and dedicated support in the form of \emph{Application Experts (AEs)}: +\end{itemize} +\begin{tabular}{rp{7.3cm}} + \pause \color{cyan} Jerry Eriksson & Profiling, Machine learning (DNN), MPI, OpenMP, OpenACC \\ +% \pause \color{cyan} Mirko Myllykoski & General HPC, numerical linear algebra, GPUs (CUDA, OpenCL, ...), task-based parallelism \\ + \pause \color{cyan} Pedro Ojeda May & Molecular dynamics, Profiling, QM/MM, NAMD, Amber, Gromacs, GAUSSIAN, R \\ + \pause \color{cyan} \r{A}ke Sandgren & General high level programming assistance, VASP, Gromacs, Amber \\ +\end{tabular} +\begin{itemize} + \pause \item Contact through regular support + \begin{itemize} + \item If you have a specific problem/question and/or need consultation %(up to 100 h) + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{HPC2N (users by discipline)} +\begin{itemize} + \item Users from several scientific disciplines: + \begin{itemize} + \item Biosciences and medicine + \item Chemistry + \item Computing science + \item Engineering + \item Materials science + \item Mathematics and statistics + \item Physics including space physics + \item ML, DL, and other AI + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{HPC2N (users by discipline, largest users)} +\begin{itemize} + \item Users from several scientific disciplines: + \begin{itemize} + \item Biosciences and medicine + \item \emph{Chemistry} + \item Computing science + \item Engineering + \item \emph{Materials science} + \item Mathematics and statistics + \item \emph{Physics including space physics} + \item {\color{cyan} Machine learning and artificial intelligence} (several new projects) + \end{itemize} +\end{itemize} +} + +%% \frame{ +%% \frametitle{HPC2N (medium users by university)} +%% \begin{center} +%% \includegraphics[width=0.9\textwidth]{figures/medium-users.png} +%% Projects with allocations at HPC2N: 2014-01-01 to 2016-05-30 +%% \end{center} +%% } + +%% \frame{ +%% \frametitle{HPC2N (large users by university)} +%% \begin{center} +%% \includegraphics[width=0.9\textwidth]{figures/large-users.png} +%% Projects with allocations at HPC2N: 2014-01-01 to 2016-05-30 +%% \end{center} +%% } + +\frame{ +\frametitle{HPC2N (users by software)} +\begin{center} +\includegraphics[width=0.9\textwidth]{figures/software_v2.png} +\end{center} +} + +\frame{ +\frametitle{Kebnekaise} +\begin{itemize} + \item \emph{The current supercomputer at HPC2N} + \pause \item Named after a massif (contains some of Sweden's highest mountain peaks) + \pause \item Kebnekaise was + \begin{itemize} + \item delivered by Lenovo and + \item \emph{installed during the summer 2016} + \end{itemize} + \pause \item Opened up for general availability on November 7, 2016 + \pause \item In 2018, Kebnekaise was \emph{extended} with + \begin{itemize} + \item 52 Intel Xeon Gold 6132 (Skylake) nodes, as well as + \item 10 NVidian V100 (Volta) GPU nodes + \end{itemize} + \pause \item In 2023, Kebnekaise was \emph{extended} with + \begin{itemize} + \item 2 dual NVIDIA A100 GPU nodes + \item one many-core AMD Zen3 CPU node + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{Kebnekaise (compute nodes)} +\begin{tabular}{rcp{6.0cm}} + Name & \# & Description \\ \hline + \color{cyan} Compute-AMD Zen3 & 1 & \makecell[l]{AMD Zen3 (EPYC 7762), 2 x 64 cores, \\\emph{1 TB}, EDR Infiniband} \\ \hdashline + \pause \color{cyan} Compute-skylake & \emph{52} & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores, \\\emph{192 GB}, EDR Infiniband, \emph{AVX-512}} \\ \hdashline + \pause \makecell[r]{\color{cyan} Compute \\ \small{\color{red} !!! Being phased out !!!}} & \emph{432} & \makecell[l]{Intel Xeon E5-2690v4, \emph{2 x 14 cores}, \\\emph{128 GB}, FDR Infiniband} \\ \hdashline + \pause \color{cyan} Large Memory & 20 & \makecell[l]{Intel Xeon E7-8860v4, \emph{4 x 18 cores}, \\\emph{3072 GB}, EDR Infiniband} \\ \hdashline +% \pause \color{cyan} KNL & 36 & \makecell[l]{Intel \emph{Xeon Phi} 7250 (Knight's Landing), \\ 68 cores, 192 GB, 16 GB MCDRAM, \\FDR Infiniband} +\end{tabular} +} + +%% \frame{ +%% \frametitle{Kebnekaise (compute nodes)} +%% \begin{tabular}{rcp{6.0cm}} +%% Name & \# & Description \\ \hline +%% \makecell[r]{\color{cyan} Compute \\ \small{\color{red} !!! Will ``soon'' be retired !!!}} & \emph{432} & \makecell[l]{Intel Xeon E5-2690v4, \emph{2 x 14 cores}, \\\emph{128 GB}, FDR Infiniband} \\ \hdashline +%% \pause \color{cyan} Compute-skylake & \emph{52} & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores, \\\emph{192 GB}, EDR Infiniband, \emph{AVX-512}} \\ \hdashline +%% \pause \color{cyan} Compute-AMD Zen3 & 1 & \makecell[l]{AMD Zen3 (EPYC 7762), 2 x 64 cores, \\\emph{1 TB}, EDR Infiniband} \\ \hdashline \pause \color{cyan} Large Memory & 20 & \makecell[l]{Intel Xeon E7-8860v4, \emph{4 x 18 cores}, \\\emph{3072 GB}, EDR Infiniband} \\ \hdashline +%% % \pause \color{cyan} KNL & 36 & \makecell[l]{Intel \emph{Xeon Phi} 7250 (Knight's Landing), \\ 68 cores, 192 GB, 16 GB MCDRAM, \\FDR Infiniband} +%% \end{tabular} +%% } + + \frame{ + \frametitle{Kebnekaise (GPU nodes)} + \begin{footnotesize} + \begin{tabular}{rcp{7.0cm}} + Name & \# & Description \\ \hline + \color{cyan} 2 x A100 & 2 & \makecell[l]{AMD Zen3 (AMD EPYC 7413), 2 x 24 cores, \\ 512 GB, EDR Infiniband, \\\emph{2 x NVidia A100}, \\2 x 6912 CUDA cores, \\ \emph{2 x 432 Tensor cores}} \\ \hdashline + \pause \color{cyan} GPU-volta & 10 & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores,\\ 192 GB, EDR Infiniband, \\\emph{2 x NVidia V100}, \\2 x 5120 CUDA cores, 2 x 16 GB VRAM, \\\emph{2 x 640 Tensor cores}} \\ \hdashline + \pause \makecell{\color{cyan} 4xGPU \\ \small{\color{red} !!! Being phased out !!!}} & 4 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{4 x NVidia K80} \\ 8 x 2496 CUDA cores, 8 x 12 GB VRAM} \\ \hdashline + \pause \makecell{\color{cyan} 2xGPU \\ \small{\color{red} !!! Being phased out !!!}} & 32 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{2 x NVidia K80} \\ 4 x 2496 CUDA cores, 4 x 12 GB VRAM} \\ + \end{tabular} + \end{footnotesize} + } + + %% \frame{ +%% \frametitle{Kebnekaise (GPU nodes)} +%% \begin{footnotesize} +%% \begin{tabular}{rcp{7.0cm}} +%% Name & \# & Description \\ \hline +%% \makecell[r]{\color{cyan} 2xGPU \\ \small{\color{red} ! Will ``soon'' be retired !}} & 32 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{2 x NVidia K80} \\ 4 x 2496 CUDA cores, 4 x 12 GB VRAM} \\ \hdashline +%% \pause \color{cyan} 4xGPU & 4 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{4 x NVidia K80} \\ 8 x 2496 CUDA cores, 8 x 12 GB VRAM} \\ \hdashline +%% \pause \color{cyan} GPU-volta & 10 & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores,\\ 192 GB, EDR Infiniband, \\\emph{2 x NVidia V100}, \\2 x 5120 CUDA cores, 2 x 16 GB VRAM, \\\emph{2 x 640 Tensor cores}} \\ \hdashline +%% \pause \color{cyan} 2 x A100 & 2 & \makecell[l]{AMD Zen3 (AMD EPYC 7413), 2 x 24 cores, \\ 512 GB, EDR Infiniband, \\\emph{2 x NVidia A100}, \\2 x 6912 CUDA cores, \\ \emph{2 x 432 Tensor cores}} +%% \end{tabular} +%% \end{footnotesize} +%% } + +%% \frame{ +%% \frametitle{Kebnekaise (in numbers)} +%% \begin{itemize} +%% \item 553 nodes in 15 racks +%% \pause \item Intel Broadwell and Skylake, AMD Zen3 +%% \pause \item NVidia A100, V100, K80 GPUs +%% % \begin{itemize} +%% % \item 18840 available for users (the rest are for managing the cluster) +%% % \end{itemize} +%% \pause \item More than \emph{135 TB memory} +%% \pause \item 71 switches (Infiniband, Access and Management networks) +%% \pause \item 16504 CPU cores +%% % \pause \item 728 TFlops/s Peak performance (expansion not included) +%% % \pause \item \emph{629 TFlops/s} Linpack (all parts, except expansion) +%% \pause \item 501760 CUDA cores +%% \pause \item 12800 Tensor cores +%% \end{itemize} +%% } + +\frame{ +\frametitle{Kebnekaise (HPC2N storage)} +\begin{itemize} + \item Basically four types of storage are available at HPC2N: + \begin{itemize} + \pause \item {\color{cyan} Home directory} + \begin{itemize} + \item \texttt{/home/X/Xyz}, \texttt{\$HOME}, \texttt{$\sim$} + \item 25 GB, user owned + \end{itemize} + \pause \item {\color{cyan} Project storage} + \begin{itemize} + \item \texttt{/proj/nobackup/abc} + \item Shared among project members + \end{itemize} + \pause \item {\color{cyan} Local scratch space} + \begin{itemize} + \item \texttt{\$SNIC\_TMP} + \item SSD (170GB), per job, per node, "volatile" + \end{itemize} + \pause \item {\color{cyan} Tape Storage} + \begin{itemize} + \item Backup + \item \emph{Long term storage} + \end{itemize} + \end{itemize} + \pause \item Also {\color{cyan} SweStore} --- disk based (dCache) + \begin{itemize} + \item Research Data Storage Infrastructure, for active research data and operated by NAISS, WLCG + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{Kebnekaise (projects)} +\begin{itemize} + \begin{small} +\item To use Kebnekaise, you must be a member of a \emph{compute project} + \begin{itemize} + \pause \item A compute project has a certain number of \emph{core hours} allocated for it per month + \pause \item A regular CPU core cost 1 core hour per hour, other resources (e.g., GPUs) cost more + \pause \item Not a hard limit but projects that go over the allocation get lower priority + \end{itemize} + \pause \item A compute project contains a certain amount of storage + \begin{itemize} + \item If more storage is required, you must be a member of a \emph{storage project} + \end{itemize} +\pause \item As Kebnekaise is a local cluster, you need to be affiliated with UmU, IRF, SLU, Miun, or LTU to use it +\pause \item Projects are applied for through SUPR (https://supr.naiss.se) +% \pause \item Birgitte will cover more details + \pause \item I will cover more details in the next section, where we + go more into detail about HPC2N and Kebnekaise. +\end{small} +\end{itemize} +} + +\frame{ + \frametitle{HPC} +\begin{center} + \begin{large} + What is HPC? + \end{large} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (definition)} +\say{High Performance Computing most generally refers to the practice of \emph{aggregating computing power} in a way that delivers much \emph{higher performance} than one could get out of a typical desktop computer or workstation in order to \emph{solve large problems} in science, engineering, or business.}\footnote{https://insidehpc.com/hpc-basic-training/what-is-hpc/\\} +} + + +\frame{ +\frametitle{High Performance Computing (opening the definition)} +\begin{itemize} + \item \emph{Aggregating computing power} + \begin{itemize} + \item 533 nodes in 15 racks totalling 16504 cores + \item Compared to 4 cores in a modern laptop + \end{itemize} + \pause \item \emph{Higher performance} + \begin{itemize} + \item More than 728\,000\,\underline{000}\,\underline{000}\,\underline{000} arithmetical operations per second\footnote{728 trillion (billion)} + \item Compared to 200\,\underline{000}\,\underline{000}\,\underline{000} Flops in a modern laptop\footnote{200 billion (milliard)\\} + \end{itemize} + \pause \item \emph{Solve large problems} + \begin{itemize} + \item When does a problem become large enough for HPC? + \item Are there other reasons for using HPC resources? (Memory, + software, support, etc.) + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (large problems)} +\begin{itemize} + \item A problem can be large for two main reasons: + \begin{enumerate} + \item {\color{cyan} Execution time}: The time required to form a solution to the problem is very long + \item {\color{cyan} Memory / storage use}: The solution of the problem requires a lot of memory and/or storage + \end{enumerate} + \pause \item The former can be remedied by \emph{increasing the performance} + \begin{itemize} + \item More cores, more nodes, GPUs, \dots + \end{itemize} + \pause \item The latter by \emph{adding more memory / storage} + \begin{itemize} + \item More memory per node (including large memory nodes), more nodes, \dots + \item Kebnekaise: 128GB - 192GB, 512GB, 3TB + \item Large storage solutions, \dots + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc1.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc2.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc3.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (other reasons)} +\begin{itemize} + \item Specialized (expensive) hardware + \begin{itemize} + \pause \item GPUs, \emph{Nvidia Tesla V100/A100 GPUs} are optimized for AI +% \pause \item Intel Xeon Phi + \pause \item High-end CPUs (AVX-512 etc) and ECC memory + \end{itemize} + \pause \item Software + \begin{itemize} + \item HPC2N holds \emph{licenses} for several softwares + \item Software is \emph{pre-configured and ready-to-use} + \end{itemize} + \pause \item \emph{Support and documentation} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (memory models)} +\begin{itemize} + \item Two memory models are relevant for HPC: + \begin{itemize} + \pause \item {\color{cyan} Shared memory}: Single memory space for all data. + \begin{minipage}{0.3\textwidth} + \vspace{1mm} + \includegraphics[scale=0.45]{figures/sm.pdf} + \vspace{1mm} + \end{minipage}\, + \begin{minipage}{0.4\textwidth} + \begin{itemize} + \item \emph{Everyone can access the same data} + \item Straightforward to use + \end{itemize} + \end{minipage} + \pause \item {\color{cyan} Distributed memory}: Multiple \emph{distinct} memory spaces. + \begin{minipage}{0.3\textwidth} + \vspace{1mm} + \includegraphics[scale=0.45]{figures/dm.pdf} + \vspace{1mm} + \end{minipage}\, + \begin{minipage}{0.4\textwidth} + \begin{itemize} + \item Everyone has direct access \emph{only to the local data} + \item Requires \emph{communication} + \end{itemize} + \end{minipage} + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (memory models)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/memory.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (programming models)} +\begin{itemize} + \item The programming model changes when we aim for extra performance and/or memory: + \begin{enumerate} + \pause \item {\color{cyan} Single-core}: Matlab, Python, C, Fortran, \dots + \begin{itemize} + \item Single stream of operations + \end{itemize} + \pause \item {\color{cyan} Multi-core}: Vectorized Matlab, pthreads, \emph{OpenMP} + \begin{itemize} + \item \emph{Multiple streams} of operations + \pause \item \emph{Work distribution}, \emph{coordination} (synchronization, etc), \dots + \end{itemize} + \pause \item {\color{cyan} Distributed memory}: \emph{MPI}, \dots + \begin{itemize} + \item Multiple streams of operations + \item Work distribution, coordination (synchronization, etc), \dots + \pause \item \emph{Data distribution and communication} + \end{itemize} + \end{enumerate} + \pause \item {\color{cyan} GPUs}: \emph{CUDA}, OpenCL, OpenACC, OpenMP, \dots + \begin{itemize} + \pause \item \emph{Many lightweight} streams of operations + \pause \item Work distribution, coordination (synchronization, etc), \dots + \pause \item \emph{Data distribution across memory spaces and movement} + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (software)} +\begin{itemize} + \item Complexity grows when we aim for extra performance and/or memory/storage: + \begin{enumerate} + \pause \item {\color{cyan} Single-core}: LAPACK, \dots + \begin{itemize} + \item Load correct toolchain etc + \end{itemize} + \pause \item {\color{cyan} Multi-core}: LAPACK + parallel BLAS, \dots + \begin{itemize} + \item Load correct toolchain etc + \pause \item \emph{Allocate} correct number of cores, \emph{configure} software to use correct number of cores, \dots + \end{itemize} + \pause \item {\color{cyan} Distributed memory}: ScaLAPACK, \dots + \begin{itemize} + \item Load correct toolchain etc + \pause \item Allocate correct number of \emph{nodes and cores}, configure software to use correct number of \emph{nodes and cores}, \dots + \pause \item Data distribution, storage, \dots + \end{itemize} + \end{enumerate} + \pause \item {\color{cyan} GPUs}: MAGMA, TensorFlow, \dots + \begin{itemize} + \item Load correct toolchain etc + \item Allocate correct number of \emph{cores and GPUs}, configure software to use correct number of \emph{cores and GPUs}, \dots + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{End (questions?)} +\centering \Huge Questions? +} + + +\end{document} + + +!!! Admonition "Learning outcomes" + + - What is Linux? + - Learn about the command line interface (CLI) + - Navigate the file system - ls, mkdir, cd, rm, cp, mv, redirection, pipes, etc. + - Data handling - compressing, archiving, file transfer, patterns, etc. + - Hints and tricks of Linux + +## Why Linux + +- Most HPC centers supercomputers run some flavour of Linux. +- It is stable and reliable +- Customizable +- Runs on any hardware +- Strong community +- Many flavours are open source and free +- Lots of applications +- Lightweight + +## What is Linux + +Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. + +An operating system is the software that sits underneath all of the other software on a computer, managing the computer’s hardware (CPU, GPU, memory, storage...) and taking care of the connections between your other software and the hardware. + +Linux is typically packaged as a Linux distribution, which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. + +!!! Note "Distributions (distros)" + + There are many Linux distribuitions, including Ubuntu, Debian, Fedora, Gentoo, and many others. Many distributions are free and open source, but there are also commercial distributions, like Red Hat Enterprise and SUSE. + + Desktop Linux distributions include a desktop environment, like GNOME, MATE, KDE Plasma, Xfce, Unity, or many others. A window manager together with applications written using a widget toolkit are generally responsible for most of what the user sees. + +In addition, a windowing system of some sort (X11, Wayland) interfaces directly with the underlying operating system and libraries, providing support for graphical hardware, pointing devices, and keyboards. The window manager generally runs on top of this windowing system. + +While the use of Linux on desktop is only 2-3%, the vast majority of web servers (>96%), most mobile devices (Android is based on the Linux kernel), and all supercomputers on the Top500 list run Linux. + +## More information + +There is much more information about Linux on Wikipedia. + +Some pages with guides and/or cheat sheets: + +- The Linux Handbook +- https://www.geeksforgeeks.org/linux-tutorial/ +- 14 Free Training Courses to Learn Linux Online +- Introduction to Linux - A Hands on Guide +- Linux Fundamentals +- Top 50+ Linux Commands You MUST Know + diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index d57a21f9..8ddfae45 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -31,5 +31,5 @@ jobs: - uses: actions/setup-python@v5 with: python-version: 3.x - - run: pip install mkdocstrings mkdocs-embed-external-markdown feedparser mkdocs-gen-files markdown-exec[ansi] markdown-include mkdocs-open-in-new-tab markdown-extra + - run: pip install mkdocstrings mkdocs-embed-external-markdown feedparser mkdocs-gen-files markdown-exec[ansi] markdown-include mkdocs-open-in-new-tab markdown-extra python-markdown-comments - run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index ed0f3158..2ea8199a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -.aux -.log -.nav -.out -.snm -.vrb +_build +_site.build +site.build +*~ +*.swp +*.swo +wordlist.dic diff --git a/docs/images/24-word-cloud-hpc2n-med-proj.png b/docs/images/24-word-cloud-hpc2n-med-proj.png new file mode 100644 index 00000000..0b106c44 Binary files /dev/null and b/docs/images/24-word-cloud-hpc2n-med-proj.png differ diff --git a/docs/images/SNIC_logo_lower.png b/docs/images/SNIC_logo_lower.png new file mode 100644 index 00000000..0bdb6a20 Binary files /dev/null and b/docs/images/SNIC_logo_lower.png differ diff --git a/docs/images/SciLifeLab.png b/docs/images/SciLifeLab.png new file mode 100644 index 00000000..973e3daf Binary files /dev/null and b/docs/images/SciLifeLab.png differ diff --git a/docs/images/VR-Logo-ENG-SVART-322x150.png b/docs/images/VR-Logo-ENG-SVART-322x150.png new file mode 100644 index 00000000..c432a3c2 Binary files /dev/null and b/docs/images/VR-Logo-ENG-SVART-322x150.png differ diff --git a/docs/images/WLCG-logo.png b/docs/images/WLCG-logo.png new file mode 100644 index 00000000..2be61edf Binary files /dev/null and b/docs/images/WLCG-logo.png differ diff --git a/docs/images/algoryx.png b/docs/images/algoryx.png new file mode 100644 index 00000000..60ebe274 Binary files /dev/null and b/docs/images/algoryx.png differ diff --git a/docs/images/dm.pdf b/docs/images/dm.pdf new file mode 100644 index 00000000..1880e5ba Binary files /dev/null and b/docs/images/dm.pdf differ diff --git a/docs/images/dm.svg b/docs/images/dm.svg new file mode 100644 index 00000000..79774770 --- /dev/null +++ b/docs/images/dm.svg @@ -0,0 +1,688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + Network / Bus + + + + + + + + + + + + + + + + + + diff --git a/docs/images/eiscat-logo5.png b/docs/images/eiscat-logo5.png new file mode 100644 index 00000000..3db5242d Binary files /dev/null and b/docs/images/eiscat-logo5.png differ diff --git a/docs/images/eosc-nordic.png b/docs/images/eosc-nordic.png new file mode 100644 index 00000000..df25c3c8 Binary files /dev/null and b/docs/images/eosc-nordic.png differ diff --git a/docs/images/essence.png b/docs/images/essence.png new file mode 100755 index 00000000..420dc1c4 Binary files /dev/null and b/docs/images/essence.png differ diff --git a/docs/images/hpc.svg b/docs/images/hpc.svg new file mode 100644 index 00000000..b1e83f3e --- /dev/null +++ b/docs/images/hpc.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + HPC + + + supercomputer + high-end workstation + laptop + small computing cluster + + + memory / storage + performance + + + + diff --git a/docs/images/hpc1.pdf b/docs/images/hpc1.pdf new file mode 100644 index 00000000..5a2808e5 Binary files /dev/null and b/docs/images/hpc1.pdf differ diff --git a/docs/images/hpc2.pdf b/docs/images/hpc2.pdf new file mode 100644 index 00000000..912053dd Binary files /dev/null and b/docs/images/hpc2.pdf differ diff --git a/docs/images/hpc2n-logo-text5.png b/docs/images/hpc2n-logo-text5.png new file mode 100644 index 00000000..b5297a64 Binary files /dev/null and b/docs/images/hpc2n-logo-text5.png differ diff --git a/docs/images/hpc2n.png b/docs/images/hpc2n.png new file mode 100644 index 00000000..6b26048a Binary files /dev/null and b/docs/images/hpc2n.png differ diff --git a/docs/images/hpc3.pdf b/docs/images/hpc3.pdf new file mode 100644 index 00000000..5d8020a9 Binary files /dev/null and b/docs/images/hpc3.pdf differ diff --git a/docs/images/irf.png b/docs/images/irf.png new file mode 100644 index 00000000..67b120e2 Binary files /dev/null and b/docs/images/irf.png differ diff --git a/docs/images/large-users.png b/docs/images/large-users.png new file mode 100644 index 00000000..cc33fa8a Binary files /dev/null and b/docs/images/large-users.png differ diff --git a/docs/images/ltu.preview.png b/docs/images/ltu.preview.png new file mode 100644 index 00000000..fd433711 Binary files /dev/null and b/docs/images/ltu.preview.png differ diff --git a/docs/images/medium-users.png b/docs/images/medium-users.png new file mode 100644 index 00000000..d34c0baf Binary files /dev/null and b/docs/images/medium-users.png differ diff --git a/docs/images/memory.pdf b/docs/images/memory.pdf new file mode 100644 index 00000000..4354e828 Binary files /dev/null and b/docs/images/memory.pdf differ diff --git a/docs/images/memory.svg b/docs/images/memory.svg new file mode 100644 index 00000000..1cf204cd --- /dev/null +++ b/docs/images/memory.svg @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Distributed memory + Shared memory + + + supercomputer + high-end workstation + small computing cluster + compute node + laptop + GPU(s) + + + memory + performance + + + + diff --git a/docs/images/mid_sweden_university.png b/docs/images/mid_sweden_university.png new file mode 100644 index 00000000..fd33e0f4 Binary files /dev/null and b/docs/images/mid_sweden_university.png differ diff --git a/docs/images/naiss.png b/docs/images/naiss.png new file mode 100644 index 00000000..59b7c673 Binary files /dev/null and b/docs/images/naiss.png differ diff --git a/docs/images/prace.png b/docs/images/prace.png new file mode 100644 index 00000000..5c191f07 Binary files /dev/null and b/docs/images/prace.png differ diff --git a/docs/images/skills4eosc.png b/docs/images/skills4eosc.png new file mode 100644 index 00000000..399e35b7 Binary files /dev/null and b/docs/images/skills4eosc.png differ diff --git a/docs/images/slu_new.png b/docs/images/slu_new.png new file mode 100644 index 00000000..5dc67070 Binary files /dev/null and b/docs/images/slu_new.png differ diff --git a/docs/images/sm.pdf b/docs/images/sm.pdf new file mode 100644 index 00000000..bd885028 Binary files /dev/null and b/docs/images/sm.pdf differ diff --git a/docs/images/sm.svg b/docs/images/sm.svg new file mode 100644 index 00000000..32b6b0f3 --- /dev/null +++ b/docs/images/sm.svg @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/software.png b/docs/images/software.png new file mode 100644 index 00000000..f407d548 Binary files /dev/null and b/docs/images/software.png differ diff --git a/docs/images/software.svg b/docs/images/software.svg new file mode 100644 index 00000000..2b76ed04 --- /dev/null +++ b/docs/images/software.svg @@ -0,0 +1 @@ +Created with Highcharts 5.0.14Core hour usage per software for Kebnekaise @ HPC2NPeriod: 2020-01-01 - 2020-12-31gromacs: 37.6 %gromacs: 37.6 %unclassified: 20.9 %unclassified: 20.9 %vasp: 20.5 %vasp: 20.5 %project_nobackup: 3.0 %project_nobackup: 3.0 %amber: 3.0 %amber: 3.0 %gaussian: 2.9 %gaussian: 2.9 %cp2k: 1.6 %cp2k: 1.6 %psi4: 1.3 %psi4: 1.3 %siesta: 1.3 %siesta: 1.3 %qsource: 1.0 %qsource: 1.0 %other: 6.9 %other: 6.9 %Highcharts.com \ No newline at end of file diff --git a/docs/images/software_v2.png b/docs/images/software_v2.png new file mode 100644 index 00000000..53f8de4d Binary files /dev/null and b/docs/images/software_v2.png differ diff --git a/docs/images/umu-logo-left-EN.png b/docs/images/umu-logo-left-EN.png new file mode 100755 index 00000000..59aa8d83 Binary files /dev/null and b/docs/images/umu-logo-left-EN.png differ diff --git a/docs/images/umu-logotyp-EN.png b/docs/images/umu-logotyp-EN.png new file mode 100755 index 00000000..9e2e1e14 Binary files /dev/null and b/docs/images/umu-logotyp-EN.png differ diff --git a/docs/index.md b/docs/index.md index b7030ae7..5c9e2296 100644 --- a/docs/index.md +++ b/docs/index.md @@ -37,6 +37,11 @@ - This course will consist of lectures and type-alongs, as well as a few exercises where you get to try out what you have just learned. +## Instructors + +- Birgitte Brydsö, HPC2N +- Pedro Ojeda May, HPC2N + ## Preliminary schedule diff --git a/docs/intro.md b/docs/intro.md new file mode 100644 index 00000000..d3cc8777 --- /dev/null +++ b/docs/intro.md @@ -0,0 +1,569 @@ +# Introduction to HPC2N, Kebnekaise and HPC + + + +![umu-logo](images/umu-logo-left-EN.png){: style="height: 44px; float: left;"} +![naiss-logo](images/naiss.png){: style="height: 44px;"} +![hpc2n-logo](images/hpc2n-logo-text5.png){: style="height: 44px;"} + +- Welcome page and syllabus: https://hpc2n.github.io/intro-linux/index.html + - Also link at the House symbol at the top of the page. + +## HPC2N + +!!! note + + High Performance Computing Center North (HPC2N) is + + - a competence center for Scientific and Parallel Computing + - part of **National Academic Infrastructure for Super­computing in Sweden (NAISS)** + +HPC2N provides state-of-the-art resources and expertise: + +- Scalable and parallel **HPC** +- Large-scale **storage facilities** (Project storage (Lustre), SweStore, Tape) +- **Grid and cloud** computing (WLCG NT1, Swedish Science Cloud) +- National Data Science Node in ”Epidemiology and Biology of Infections” (DDLS) +- Software for e-Science applications +- All levels of user support + - Primary, advanced, dedicated + - Application Experts (AEs) + +!!! note "Primary objective" + + To raise the national and local level of HPC competence and transfer HPC knowledge and technology to new users in academia and industry. + +### HPC2N partners + +HPC2N is hosted by: + +![umu-logo](images/umu-logotyp-EN.png){: style="height: 100px;float: left;"} + +

+ +Partners: + +![irf-logo](images/irf.png){: style="height: 90px;float: left;padding: 4px;"} +![ltu-logo](images/ltu.preview.png){: style="height: 90px;padding: 4px;"} +![miun-logo](images/mid_sweden_university.png){: style="height: 90px;padding: 4px;"} +![slu-logo](images/slu_new.png){: style="height: 90px;padding: 4px;"} + +
+ +### HPC2N funding and collaborations + +Funded mainly by **Umeå University**, with contributions from the **other HPC2N partners**. + +Involved in several **projects and collaborations**: + +![essence-logo](images/essence.png){: style="height: 85px; float: left;padding: 5px;"} +![prace-logo](images/prace.png){: style="height: 85px;padding: 5px;"} +![algoryx-logo](images/algoryx.png){: style="height: 80px;padding: 5px;"} + +![WLCG-logo](images/WLCG-logo.png){: style="height: 90px;padding: 5px;"} +![eosc-nordic-logo](images/eosc-nordic.png){: style="height: 85px;padding: 5px;"} +![eiscat-logo](images/eiscat-logo5.png){: style="height: 95px;padding: 5px;"} + +![scilifelab-logo](images/SciLifeLab.png){: style="height: 90px;padding: 5px;"} +![skills4eosc](images/skills4eosc.png){: style="height: 90px;padding: 5px;"} + +
+ +### HPC2N training and other services + +- **User support** (primary, advanced, dedicated) + - Research group meetings @ UmU + - Also at the partner sites + - Online "HPC2N fika" +- **User training and education program** + - 0.5 -- 5 days; ready-to-run exercises + - Introduction to Linux, 16 September 2024 + - Introduction to HPC2N and Kebnekaise, 16 September 2024 + - Parallel programming and tools (OpenMP, MPI, debugging, perf. analyzers, Matlab, R, MD simulation, ML, GPU, ...) + - Basic Singularity, 16 October 2024 + - Introduction to running R, Python, Julia, and Matlab in HPC, 22-25 October 2024 + - Introduction to Git, 25-29 November 2024 + - Using Python in an HPC environment, 5-6 December 2024 + - **Updated list:** https://www.hpc2n.umu.se/events/courses +- Workshops and seminars +- NGSSC / SeSE & university courses + +### HPC2N personnel + +Management: + +- Paolo Bientinesi, director +- Björn Torkelsson, deputy director +- Lena Hellman, administrator + +Application experts: + +- Jerry Eriksson +- Pedro Ojeda May +- Birgitte Brydsö +- Åke Sandgren + +Others: + +- Mikael Rännar (WLCG coord) +- Research Engineers under DDLS, HPC2N/SciLifeLab + - Paul Dulaud, System Developer, IT + - Abdullah Aziz, Data Engineer + - Data Steward + +System and support: + +- Erik Andersson +- **Birgitte Brydsö** +- Niklas Edmundsson (Tape coord) +- My Karlsson +- Roger Oscarsson +- **Åke Sandgren** +- Mattias Wadenstein (NeIC, Tier1) +- **Lars Viklund** + +### HPC2N application experts + +- HPC2N provides advanced and dedicated support in the form of **Application Experts (AEs)**: + - Jerry Eriksson: Profiling, Machine learning (DNN), MPI, OpenMP, OpenACC + - Pedro Ojeda May: Molecular dynamics, Profiling, QM/MM, NAMD, Amber, Gromacs, GAUSSIAN, R, Python + - Åke Sandgren: General high level programming assistance, VASP, Gromacs, Amber + - Birgitte Brydsö: General HPC, R, Python +- Contact through regular support + +### HPC2N users by discipline + +- Users from several scientific disciplines: + - Biosciences and medicine + - Chemistry + - Computing science + - Engineering + - Materials science + - Mathematics and statistics + - Physics including space physics + - ML, DL, and other AI + +### HPC2N users by discipline, largest users + +- Users from several scientific disciplines: + - Biosciences and medicine + - **Chemistry** + - Computing science + - Engineering + - **Materials science** + - Mathematics and statistics + - **Physics including space physics** + - **Machine learning and artificial intelligence** (several new projects) + +### HPC2N users by software + +![software-users](images/software_v2.png) + +## Kebnekaise + +The current supercomputer at HPC2N. + +- Named after a massif (contains some of Sweden's highest mountain peaks) + + \pause \item Kebnekaise was + \begin{itemize} + \item delivered by Lenovo and + \item \emph{installed during the summer 2016} + \end{itemize} + \pause \item Opened up for general availability on November 7, 2016 + \pause \item In 2018, Kebnekaise was \emph{extended} with + \begin{itemize} + \item 52 Intel Xeon Gold 6132 (Skylake) nodes, as well as + \item 10 NVidian V100 (Volta) GPU nodes + \end{itemize} + \pause \item In 2023, Kebnekaise was \emph{extended} with + \begin{itemize} + \item 2 dual NVIDIA A100 GPU nodes + \item one many-core AMD Zen3 CPU node + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{Kebnekaise (compute nodes)} +\begin{tabular}{rcp{6.0cm}} + Name & \# & Description \\ \hline + \color{cyan} Compute-AMD Zen3 & 1 & \makecell[l]{AMD Zen3 (EPYC 7762), 2 x 64 cores, \\\emph{1 TB}, EDR Infiniband} \\ \hdashline + \pause \color{cyan} Compute-skylake & \emph{52} & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores, \\\emph{192 GB}, EDR Infiniband, \emph{AVX-512}} \\ \hdashline + \pause \makecell[r]{\color{cyan} Compute \\ \small{\color{red} !!! Being phased out !!!}} & \emph{432} & \makecell[l]{Intel Xeon E5-2690v4, \emph{2 x 14 cores}, \\\emph{128 GB}, FDR Infiniband} \\ \hdashline + \pause \color{cyan} Large Memory & 20 & \makecell[l]{Intel Xeon E7-8860v4, \emph{4 x 18 cores}, \\\emph{3072 GB}, EDR Infiniband} \\ \hdashline +% \pause \color{cyan} KNL & 36 & \makecell[l]{Intel \emph{Xeon Phi} 7250 (Knight's Landing), \\ 68 cores, 192 GB, 16 GB MCDRAM, \\FDR Infiniband} +\end{tabular} +} + +%% \frame{ +%% \frametitle{Kebnekaise (compute nodes)} +%% \begin{tabular}{rcp{6.0cm}} +%% Name & \# & Description \\ \hline +%% \makecell[r]{\color{cyan} Compute \\ \small{\color{red} !!! Will ``soon'' be retired !!!}} & \emph{432} & \makecell[l]{Intel Xeon E5-2690v4, \emph{2 x 14 cores}, \\\emph{128 GB}, FDR Infiniband} \\ \hdashline +%% \pause \color{cyan} Compute-skylake & \emph{52} & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores, \\\emph{192 GB}, EDR Infiniband, \emph{AVX-512}} \\ \hdashline +%% \pause \color{cyan} Compute-AMD Zen3 & 1 & \makecell[l]{AMD Zen3 (EPYC 7762), 2 x 64 cores, \\\emph{1 TB}, EDR Infiniband} \\ \hdashline \pause \color{cyan} Large Memory & 20 & \makecell[l]{Intel Xeon E7-8860v4, \emph{4 x 18 cores}, \\\emph{3072 GB}, EDR Infiniband} \\ \hdashline +%% % \pause \color{cyan} KNL & 36 & \makecell[l]{Intel \emph{Xeon Phi} 7250 (Knight's Landing), \\ 68 cores, 192 GB, 16 GB MCDRAM, \\FDR Infiniband} +%% \end{tabular} +%% } + + \frame{ + \frametitle{Kebnekaise (GPU nodes)} + \begin{footnotesize} + \begin{tabular}{rcp{7.0cm}} + Name & \# & Description \\ \hline + \color{cyan} 2 x A100 & 2 & \makecell[l]{AMD Zen3 (AMD EPYC 7413), 2 x 24 cores, \\ 512 GB, EDR Infiniband, \\\emph{2 x NVidia A100}, \\2 x 6912 CUDA cores, \\ \emph{2 x 432 Tensor cores}} \\ \hdashline + \pause \color{cyan} GPU-volta & 10 & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores,\\ 192 GB, EDR Infiniband, \\\emph{2 x NVidia V100}, \\2 x 5120 CUDA cores, 2 x 16 GB VRAM, \\\emph{2 x 640 Tensor cores}} \\ \hdashline + \pause \makecell{\color{cyan} 4xGPU \\ \small{\color{red} !!! Being phased out !!!}} & 4 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{4 x NVidia K80} \\ 8 x 2496 CUDA cores, 8 x 12 GB VRAM} \\ \hdashline + \pause \makecell{\color{cyan} 2xGPU \\ \small{\color{red} !!! Being phased out !!!}} & 32 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{2 x NVidia K80} \\ 4 x 2496 CUDA cores, 4 x 12 GB VRAM} \\ + \end{tabular} + \end{footnotesize} + } + + %% \frame{ +%% \frametitle{Kebnekaise (GPU nodes)} +%% \begin{footnotesize} +%% \begin{tabular}{rcp{7.0cm}} +%% Name & \# & Description \\ \hline +%% \makecell[r]{\color{cyan} 2xGPU \\ \small{\color{red} ! Will ``soon'' be retired !}} & 32 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{2 x NVidia K80} \\ 4 x 2496 CUDA cores, 4 x 12 GB VRAM} \\ \hdashline +%% \pause \color{cyan} 4xGPU & 4 & \makecell[l]{Intel Xeon E5-2690v4, 2 x 14 cores,\\ 128 GB, FDR Infiniband,\\ \emph{4 x NVidia K80} \\ 8 x 2496 CUDA cores, 8 x 12 GB VRAM} \\ \hdashline +%% \pause \color{cyan} GPU-volta & 10 & \makecell[l]{Intel Xeon Gold 6132, 2 x 14 cores,\\ 192 GB, EDR Infiniband, \\\emph{2 x NVidia V100}, \\2 x 5120 CUDA cores, 2 x 16 GB VRAM, \\\emph{2 x 640 Tensor cores}} \\ \hdashline +%% \pause \color{cyan} 2 x A100 & 2 & \makecell[l]{AMD Zen3 (AMD EPYC 7413), 2 x 24 cores, \\ 512 GB, EDR Infiniband, \\\emph{2 x NVidia A100}, \\2 x 6912 CUDA cores, \\ \emph{2 x 432 Tensor cores}} +%% \end{tabular} +%% \end{footnotesize} +%% } + +%% \frame{ +%% \frametitle{Kebnekaise (in numbers)} +%% \begin{itemize} +%% \item 553 nodes in 15 racks +%% \pause \item Intel Broadwell and Skylake, AMD Zen3 +%% \pause \item NVidia A100, V100, K80 GPUs +%% % \begin{itemize} +%% % \item 18840 available for users (the rest are for managing the cluster) +%% % \end{itemize} +%% \pause \item More than \emph{135 TB memory} +%% \pause \item 71 switches (Infiniband, Access and Management networks) +%% \pause \item 16504 CPU cores +%% % \pause \item 728 TFlops/s Peak performance (expansion not included) +%% % \pause \item \emph{629 TFlops/s} Linpack (all parts, except expansion) +%% \pause \item 501760 CUDA cores +%% \pause \item 12800 Tensor cores +%% \end{itemize} +%% } + +\frame{ +\frametitle{Kebnekaise (HPC2N storage)} +\begin{itemize} + \item Basically four types of storage are available at HPC2N: + \begin{itemize} + \pause \item {\color{cyan} Home directory} + \begin{itemize} + \item \texttt{/home/X/Xyz}, \texttt{\$HOME}, \texttt{$\sim$} + \item 25 GB, user owned + \end{itemize} + \pause \item {\color{cyan} Project storage} + \begin{itemize} + \item \texttt{/proj/nobackup/abc} + \item Shared among project members + \end{itemize} + \pause \item {\color{cyan} Local scratch space} + \begin{itemize} + \item \texttt{\$SNIC\_TMP} + \item SSD (170GB), per job, per node, "volatile" + \end{itemize} + \pause \item {\color{cyan} Tape Storage} + \begin{itemize} + \item Backup + \item \emph{Long term storage} + \end{itemize} + \end{itemize} + \pause \item Also {\color{cyan} SweStore} --- disk based (dCache) + \begin{itemize} + \item Research Data Storage Infrastructure, for active research data and operated by NAISS, WLCG + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{Kebnekaise (projects)} +\begin{itemize} + \begin{small} +\item To use Kebnekaise, you must be a member of a \emph{compute project} + \begin{itemize} + \pause \item A compute project has a certain number of \emph{core hours} allocated for it per month + \pause \item A regular CPU core cost 1 core hour per hour, other resources (e.g., GPUs) cost more + \pause \item Not a hard limit but projects that go over the allocation get lower priority + \end{itemize} + \pause \item A compute project contains a certain amount of storage + \begin{itemize} + \item If more storage is required, you must be a member of a \emph{storage project} + \end{itemize} +\pause \item As Kebnekaise is a local cluster, you need to be affiliated with UmU, IRF, SLU, Miun, or LTU to use it +\pause \item Projects are applied for through SUPR (https://supr.naiss.se) +% \pause \item Birgitte will cover more details + \pause \item I will cover more details in the next section, where we + go more into detail about HPC2N and Kebnekaise. +\end{small} +\end{itemize} +} + +\frame{ + \frametitle{HPC} +\begin{center} + \begin{large} + What is HPC? + \end{large} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (definition)} +\say{High Performance Computing most generally refers to the practice of \emph{aggregating computing power} in a way that delivers much \emph{higher performance} than one could get out of a typical desktop computer or workstation in order to \emph{solve large problems} in science, engineering, or business.}\footnote{https://insidehpc.com/hpc-basic-training/what-is-hpc/\\} +} + + +\frame{ +\frametitle{High Performance Computing (opening the definition)} +\begin{itemize} + \item \emph{Aggregating computing power} + \begin{itemize} + \item 533 nodes in 15 racks totalling 16504 cores + \item Compared to 4 cores in a modern laptop + \end{itemize} + \pause \item \emph{Higher performance} + \begin{itemize} + \item More than 728\,000\,\underline{000}\,\underline{000}\,\underline{000} arithmetical operations per second\footnote{728 trillion (billion)} + \item Compared to 200\,\underline{000}\,\underline{000}\,\underline{000} Flops in a modern laptop\footnote{200 billion (milliard)\\} + \end{itemize} + \pause \item \emph{Solve large problems} + \begin{itemize} + \item When does a problem become large enough for HPC? + \item Are there other reasons for using HPC resources? (Memory, + software, support, etc.) + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (large problems)} +\begin{itemize} + \item A problem can be large for two main reasons: + \begin{enumerate} + \item {\color{cyan} Execution time}: The time required to form a solution to the problem is very long + \item {\color{cyan} Memory / storage use}: The solution of the problem requires a lot of memory and/or storage + \end{enumerate} + \pause \item The former can be remedied by \emph{increasing the performance} + \begin{itemize} + \item More cores, more nodes, GPUs, \dots + \end{itemize} + \pause \item The latter by \emph{adding more memory / storage} + \begin{itemize} + \item More memory per node (including large memory nodes), more nodes, \dots + \item Kebnekaise: 128GB - 192GB, 512GB, 3TB + \item Large storage solutions, \dots + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc1.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc2.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (what counts as HPC)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/hpc3.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (other reasons)} +\begin{itemize} + \item Specialized (expensive) hardware + \begin{itemize} + \pause \item GPUs, \emph{Nvidia Tesla V100/A100 GPUs} are optimized for AI +% \pause \item Intel Xeon Phi + \pause \item High-end CPUs (AVX-512 etc) and ECC memory + \end{itemize} + \pause \item Software + \begin{itemize} + \item HPC2N holds \emph{licenses} for several softwares + \item Software is \emph{pre-configured and ready-to-use} + \end{itemize} + \pause \item \emph{Support and documentation} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (memory models)} +\begin{itemize} + \item Two memory models are relevant for HPC: + \begin{itemize} + \pause \item {\color{cyan} Shared memory}: Single memory space for all data. + \begin{minipage}{0.3\textwidth} + \vspace{1mm} + \includegraphics[scale=0.45]{figures/sm.pdf} + \vspace{1mm} + \end{minipage}\, + \begin{minipage}{0.4\textwidth} + \begin{itemize} + \item \emph{Everyone can access the same data} + \item Straightforward to use + \end{itemize} + \end{minipage} + \pause \item {\color{cyan} Distributed memory}: Multiple \emph{distinct} memory spaces. + \begin{minipage}{0.3\textwidth} + \vspace{1mm} + \includegraphics[scale=0.45]{figures/dm.pdf} + \vspace{1mm} + \end{minipage}\, + \begin{minipage}{0.4\textwidth} + \begin{itemize} + \item Everyone has direct access \emph{only to the local data} + \item Requires \emph{communication} + \end{itemize} + \end{minipage} + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (memory models)} +\begin{center} + \includegraphics[width=0.6\textwidth]{figures/memory.pdf} +\end{center} +} + +\frame{ +\frametitle{High Performance Computing (programming models)} +\begin{itemize} + \item The programming model changes when we aim for extra performance and/or memory: + \begin{enumerate} + \pause \item {\color{cyan} Single-core}: Matlab, Python, C, Fortran, \dots + \begin{itemize} + \item Single stream of operations + \end{itemize} + \pause \item {\color{cyan} Multi-core}: Vectorized Matlab, pthreads, \emph{OpenMP} + \begin{itemize} + \item \emph{Multiple streams} of operations + \pause \item \emph{Work distribution}, \emph{coordination} (synchronization, etc), \dots + \end{itemize} + \pause \item {\color{cyan} Distributed memory}: \emph{MPI}, \dots + \begin{itemize} + \item Multiple streams of operations + \item Work distribution, coordination (synchronization, etc), \dots + \pause \item \emph{Data distribution and communication} + \end{itemize} + \end{enumerate} + \pause \item {\color{cyan} GPUs}: \emph{CUDA}, OpenCL, OpenACC, OpenMP, \dots + \begin{itemize} + \pause \item \emph{Many lightweight} streams of operations + \pause \item Work distribution, coordination (synchronization, etc), \dots + \pause \item \emph{Data distribution across memory spaces and movement} + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{High Performance Computing (software)} +\begin{itemize} + \item Complexity grows when we aim for extra performance and/or memory/storage: + \begin{enumerate} + \pause \item {\color{cyan} Single-core}: LAPACK, \dots + \begin{itemize} + \item Load correct toolchain etc + \end{itemize} + \pause \item {\color{cyan} Multi-core}: LAPACK + parallel BLAS, \dots + \begin{itemize} + \item Load correct toolchain etc + \pause \item \emph{Allocate} correct number of cores, \emph{configure} software to use correct number of cores, \dots + \end{itemize} + \pause \item {\color{cyan} Distributed memory}: ScaLAPACK, \dots + \begin{itemize} + \item Load correct toolchain etc + \pause \item Allocate correct number of \emph{nodes and cores}, configure software to use correct number of \emph{nodes and cores}, \dots + \pause \item Data distribution, storage, \dots + \end{itemize} + \end{enumerate} + \pause \item {\color{cyan} GPUs}: MAGMA, TensorFlow, \dots + \begin{itemize} + \item Load correct toolchain etc + \item Allocate correct number of \emph{cores and GPUs}, configure software to use correct number of \emph{cores and GPUs}, \dots + \end{itemize} +\end{itemize} +} + +\frame{ +\frametitle{End (questions?)} +\centering \Huge Questions? +} + + +\end{document} + + +!!! Admonition "Learning outcomes" + + - What is Linux? + - Learn about the command line interface (CLI) + - Navigate the file system - ls, mkdir, cd, rm, cp, mv, redirection, pipes, etc. + - Data handling - compressing, archiving, file transfer, patterns, etc. + - Hints and tricks of Linux + +## Why Linux + +- Most HPC centers supercomputers run some flavour of Linux. +- It is stable and reliable +- Customizable +- Runs on any hardware +- Strong community +- Many flavours are open source and free +- Lots of applications +- Lightweight + +## What is Linux + +Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. + +An operating system is the software that sits underneath all of the other software on a computer, managing the computer’s hardware (CPU, GPU, memory, storage...) and taking care of the connections between your other software and the hardware. + +Linux is typically packaged as a Linux distribution, which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. + +!!! Note "Distributions (distros)" + + There are many Linux distribuitions, including Ubuntu, Debian, Fedora, Gentoo, and many others. Many distributions are free and open source, but there are also commercial distributions, like Red Hat Enterprise and SUSE. + + Desktop Linux distributions include a desktop environment, like GNOME, MATE, KDE Plasma, Xfce, Unity, or many others. A window manager together with applications written using a widget toolkit are generally responsible for most of what the user sees. + +In addition, a windowing system of some sort (X11, Wayland) interfaces directly with the underlying operating system and libraries, providing support for graphical hardware, pointing devices, and keyboards. The window manager generally runs on top of this windowing system. + +While the use of Linux on desktop is only 2-3%, the vast majority of web servers (>96%), most mobile devices (Android is based on the Linux kernel), and all supercomputers on the Top500 list run Linux. + +## More information + +There is much more information about Linux on Wikipedia. + +Some pages with guides and/or cheat sheets: + +- The Linux Handbook +- https://www.geeksforgeeks.org/linux-tutorial/ +- 14 Free Training Courses to Learn Linux Online +- Introduction to Linux - A Hands on Guide +- Linux Fundamentals +- Top 50+ Linux Commands You MUST Know + diff --git a/requirements.txt b/requirements.txt index b0a5f60c..8828dfc8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ markdown-exec[ansi]==1.8.3 markdown-include==0.8.1 mkdocs-open-in-new-tab==1.0.3 markdown-extra==1.0.1 +python-markdown-comments==1.1.0