Training courses#
Introductory courses#
These courses are organized twice a year, before the semesters start. Each of the four courses has a duration of half a day. These courses can be organized on demand for a group of 4 or more people and can be adapted to the audience. If you wish to have one or more introductory courses for your lab or class, please contact us.
For all the courses, the participants are asked to bring their own laptops.
Introduction to Linux#
The goal of this course is to give the basis on the usage of a Linux system in order for the user to be able to use the general purpose clusters, and to feel at ease like a penguin in cold water.
Content#
- Overview of Linux
- Connecting to a remote machine (from Linux, MS Windows or Apple macOS)
- Using a Linux/Unix system with only the command line
- Basics on file organization
- Common shell commands
- Writing a shell script
Prerequisites#
Having access to a computer with a Linux environment.
Course material#
Using the general purpose clusters#
This course is for new users of the central HPC resources. You will familiarize yourself with the SCITAS’ HPC clusters and their software environment. You will learn create, launch, and manage your simulations.
Content#
- What is a compute cluster
- Introduction to the Slurm batch system
- Disk space management
- How to use modules
- How to create job-scripts
- Job submission exercises
- Querying jobs
- Debugging jobs
- Tools & tips
Prerequisites#
A minimal knowledge of Linux/Unix environments is required. Our course Introduction to Linux can be followed prior to this course.
Course material#
Data management on HPC platforms#
Simulation data are very varied in size and in nature, e.g. source files, input files and output files. For each data type there is an optimal transfer and storage method. In this workshop the students will learn how to handle their data when using remote machines for computations.
Prerequisites#
A minimal knowledge of Linux/Unix environments is required. The courses Introduction to Linux can be followed prior to this one.
Course material#
Compiling codes and using MPI on central HPC facilities#
The goal of this course is to teach you the fundamentals of code compilation and using MPI programs on HPC clusters. You will learn how to compile your code (serial and MPI) and link it to external libraries. A preview of two build automation tools will also be presented.
Content#
- Basics of compilation
- Linking and libraries
- Compiling and running MPI codes
- Introduction to GNU Make and CMake
Prerequisites#
Being comfortable on a cluster environment. The course Using the general purpose clusters can be followed prior to this course.
Course material#
Master courses#
Parallel and High Performance Computing#
The MATH-454 Parallel and High Performance Computing course is offered in the spring semester and covers the following topics:
- The essentials
- Using the facilities
- Understanding HPC concepts
- Writing efficient code
- Profiling
- Optimizing
- Parallelization methods
- OpenMP
- MPI
- CUDA
- Advanced topics
- Hybrid computing
- Proposal writing
It can be followed by master students and PhD students. The exam consists in an individual project. The topic is to be chosen among the ones suggested by the instructors. However, PhD students can suggest their own, as long as the project can be included in their PhD work.
Doctoral courses#
Parallel programming#
The PHYS-743 Parallel programming course is given as a 1-week intensive course followed by a 1-week individual project. The contents of the course are:
- Optimization of a sequential code
- Parallelization on a shared memory node
- Parallelization on a distributed memory cluster: basic concepts
- Parallelization on a distributed memory cluster: advanced concepts
- Hybrid programming (OpenMP + MPI)