Lecturer : Olaf Schenk, PostDoc : Juraj Kardos Assistants : Malik Lechekhab, Timothy Holt, and Zenin Easa Panthakkalakath
Slack list: https://hpc2022.slack.com
When : Tuesday 4:30pm-6:15pm, Wednesday 10:30am - 12:15am. The course starts on Tuesday, September 20, 2:30pm - 4:15pm
Where: Room D.1.14 on Tuesday 2:30pm - 4:15pm,, Room D.1.15 on Wednesday 10:30am - 12:15am
Git: https://github.com/oschenk/hpc2022
The course is designed to teach students how to program parallel computers to efficiently solve challenging problems in science and engineering, where very fast computers are required either to perform complex simulations or to analyze enormous datasets. This HPC course is a graduate-level introduction to high performance computing. It refers to two things: efficient as the problem size grows, and efficient as the system size measured in numbers of cores grows. The course is organized as an HPC Software Atelier. The practical aspect of this course is implementing the techniques you’ll learn to run on real parallel systems, so you can check whether what appears to work well in theory also translates into practice. Programming models you will use include OpenMP, and MPI, and possibly others. Therefore, this computing lab consists of hand-on projects on HPC. Students will also be offered a number of projects on performance analysis, parallelism detection and efficient development for modern manycore processors using OpenMP and MPI. This experience will be very useful for individual semester projects in other classes, where students might develop & deploy components of massively parallel numerical simulation software. GPU computing will not be covered in this course. It will be fully discussed in the annual CSCS-USI Summer university on Effective High-Performance Computing & Data Analytics where we will focus on the effective exploitation of state-of-the-art hybrid HPC systems with a special focus on Data Analytics. The content of the summer university course is tailored for intermediate graduate students interested in both learning parallel programming models, and having hands-on experience using HPC systems. Starting from an introductory explanation of the available systems at CSCS, the course will progress to more applied topics such as parallel programming on accelerators, scientific libraries, and deep learning software frameworks. The following topics will be covered:
- GPU architectures
- GPU programming,
- Message passing programming model (MPI)
- Performance optimization and scientific libraries,
- Interactive supercomputing and Python libraries
- Introduction to Machine Learning, and GPU optimized framework.
The Summer School will be held mid of July 2023, most probably as an hybrid summer school. More information is available at this "here". Students will be able to earn six ECT credit points for this Effective High-Performance Computing & Data Analytics course (subject to exam).
Lecture slides, projects and solutions will be provided as part of this git repository. For further material, we also refer to the iCorsi course page.
In the oral exam, we will review these computing projects and the theory behind it, and discuss various aspects of these methods. The oral exam will cover material from the entire course and we might discuss your solutions.
The lab requirements include programming of mini-projects and other assignments; final written examination. All of these will count in your final grade. The final grade will be calculated by averaging the two elements with weights
- up to six to eight mini-projects: 40%.
- final oral exam: 60%
- Value in ECTS: 6
We will use C/C++, Matlab, MPI, and the Intel Math Kernel Library for the mini-project programs.
All assignments are due in class on the assigned due date. We recognize that students may face unusual circumstances and require some flexibility in the course of the semester, therefore each student will be granted ONE free assignment that we will not count for the final grading of the mini-projects.
You are allowed to discuss such questions with anyone you like; however:
-
Your submission must list anyone you discussed problems with.
-
You must write up your submission independently.
If you want to receive feedback on your exercises, please submit/upload your solution to this moodle webpage:
https://www.icorsi.ch/course/view.php?id=14652
Your exercise will then be corrected within a period of three weeks (maybe earlier).