Courses offered by SCITAS
- Intro courses
- Master course: Parallel and High Performance Computing
- Doctoral school course: Parallel programming
- Specific courses
Intro courses
The next intro courses will take place on the following dates:
“Introduction to Linux” – Monday 21.10.2024 8h30-13h00
“Using the general purpose clusters”- Wednesday 30.10.2024 8h30-13h00
The courses will be held on site. Participants are asked to bring their own laptops.
If you would like to register, please send us an e-mail.
The following courses will be organized in spring 2025.
Advanced courses can be organized on demand for groups of 4 or more, and can be adapted to the audience. If you wish to organise a course for your lab or class, please contact us.
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, Windows or Mac)
- 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.
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.
Material
Data management on HPC platforms: transferring data and handling code with Git
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.
Material
Compiling code and using MPI on the 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.
Material
Master course
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 School course
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)
Specific courses
Using the c4science.ch platform
This course is organized on-demand.
Introduction to profiling and software optimization
Duration
1 day
In this course you will learn how to profile your code in order to measure the performance. Several tools will be presented. The second part of this workshop will show software optimization techniques.
Programme
Introduction to profiling and software optimization
- Introduction to profiling and software optimization
- Score-P
- Tau
- Scalasca
- Software optimization tecniques
- Test cases
Prerequisites
The course “Introduction to the central HPC facilities” should have been followed prior to this course or users should have equivalent experience.
MPI, an introduction to parallel programming
Duration
3 days
Description
The course is organized as a three-day, intensive, full-time course. It puts emphasis on practical implementation and includes examples and exercises performed on a dedicated PC Linux cluster. After an introduction to various parallelization models, the course focuses on the Message Passing Interface (MPI) standard and the shared memory programming paradigm OpenMP. After the 3-days course, the attendees will be able to understand, modify, or program from scratch applications in most of the scientific and engineering fields using the functions of the MPI-1 standard and the OpenMP 3.0 specifications. The topics covered include
- Parallelization using MPI (2 days)
- Overview of parallel programming models
- Point-to-point communications
- Collective communications
- Parallelization using OpenMP (1 day):
- Overview of the OpenMP 3.0 standard
- Fine grain / coarse grain approaches
- Control, data and synchronization constructs, scheduling
- Traps with OpenMP
- “OpenMP-ization” methodolgy (good programing practices)
Prerequisites
No prior experience of parallel programming is required but a working knowledge of either Fortran or C/C++ as well as a basic knowledge of Unix/Linux is mandatory.
MPI, advanced parallel programming
Duration
2 days
Description
The course is organized as a two-day, intensive, full-time course. It is mainly for participants who have finished the introductory course An Introduction to Parallel Programming or equivalent working experience of MPI programming in Fortran and C/C++.
Programmers having already a solid experience on MPI are indeed welcome.
Goal of the course
To tackle advanced MPI functionalities, including MPI-OpenMP hybrid programming.
Computing on GPUs
Duration
1 day
Description
GPUs are becoming more and more popular and nowadays they are widely available. During this course you will receive an introduction about numerical methods on GPU.
Programme
- GPU architecture
- Parallel algorithms
- Optimizing GPU programs
- Parallel computing patterns
Fundamentals of Accelerated Computing with CUDA C/C++
Duration
1 day
Description
For more details, click here.
The course will be held on site. Please note that you will need to bring your own laptop.
Places are limited and will be assigned on a first come first served basis.
Once registered, you will receive a confirmation e-mail with all the details. If you have signed up but cannot participate, please let us know.
The registrations for November 18th are closed as we have reached the maximum number of participants. Another date will be set soon.