teaching:ws23:hpc-lab
Table of Contents
Lab Exploring HPC technologies
| Semester | Winter Semester 2023-2024 |
|---|---|
| Lecturer | Prof. Dr. Estela Suarez |
| Module (BASIS) | MA-INF-1225 |
| eCampus | TBD: eCampus_MA-INF-1225 |
| Type of Lecture | LAB |
| Credits | 9 CP |
| Research Area | High Performance Computing |
| Language | English |
| Max. Number of Participants | 2 |
Registration
If you consider participating in this lab, please write an informal application e-mail to Prof. Dr. Estela Suarez. This lab has an upper limit on the number of participants; please mention in your Email:
- Your past experience in HPC and your participation in previous HPC lectures. Notice that we expect you to have some practical experience on C/C++ and Python programming.
- Your availability dates for a stay at the Jülich Supercomputing Centre (JSC). Notice that we expect you to be at JSC on site for a minimum of 2-days per week during 4 weeks in a block.
Dates
| Date | When | Where |
|---|---|---|
| Deadline application | 15.09.2023 | Email to lecturer |
| Introductory workshop | 04.10.2023 - 06.10.2023 | Room 2.050 |
| 4-weeks Blockveranstaltung | dates TBD bilaterally | JSC |
Content
You will learn the practical use of HPC hardware and software and how to compare performance and features between different technologies.
- HPC systems: access and use of HPC compute resources at the Jülich Supercomputing Centre
- Use of different processor architectures
- Software environment, performance analysis tools
- Parallel programming
- Benchmarking tools and procedures
- Performance of applications and scaling behaviour, understanding and strategies for improvement
Skills and Prerequisites
- Technical: The students will carry out a practical task (project) in the context of High Performance Computing (HPC), including test of different hardware architectures and software tools, and documentation of the implemented software/system. In more detail:
- Ability to understand a use case from complex code developed.
- Ability to adapt and run applications to different kinds of processing units (e.g. Intel, AMD and Arm CPUs, NVIDIA and AMD GPUs, Graphcore accelerators,…), taking into account their specific architecture characteristic and programming environments.
- Understanding and use of parallel programming paradigms (e.g. OpenMP, MPI, CUDA, HiP), and high-level programming languages (e.g. Kokkos, SYCL, OneAPI).
- Ability to design and execute a benchmarking campaign, collect performance information on different hardware architectures, analyse the collected performance data, and extract conclusions.
- Use of performance analysis tools, understanding of performance bottlenecks and measures to improve them. Software development skills and standards (e.g. git repositories, versioning, documentation).
- Soft skills:
- Skills in constructively collaborating and interacting with application developers, tools developers, and system administrators in a solution oriented manner, taking into account their different “work language” and expertise.
- Ability to properly present the performed work and results obtained and to classify the own results into the state-of-the-art.
- Prepare readable documentation of software.
- Prerequisites:
- Knowledge of a modern programming language (ideally C/C++).
- Interest in High Performance Computing
- Recommended: Bachelor Lecture “Computerarchitektur”
- Studienleistungen:
- Knowledge of modern programming languages (C/C++, Python).
- Interest in High Performance Computing.
- Willing to stay for a minimum of 2 days per week during 4 weeks at the Jülich Supercomputing Centre (Blockveranstaltung, dates to be discussed).
Evaluation
A report and an oral presentation of the results will be the main grading elements. The attendees will deliver the documented software that they have written through a GitLab repository.
Literature
- John L. Hennessy, David A. Patterson. Computer Architecture - A Quantitative Approach. Morgan Kaufmann Publishers, 2012
- David A. Patterson, John L. Hennessy. Computer Organization and Design - The Hardware-Software Interface. Morgan Kaufmann Publishers, 2013
- Message Passing Interface Forum. MPI: A Message-Passing Interface Standard, Version 3.1
- OpenMP Application Programming Interface, Version 4.5, November 2015
teaching/ws23/hpc-lab.txt · Last modified: by estela.suarez
