ProTHPC - Proficiency Training High Performance Computing
The Proficiency Training High Performance Computing consists of short courses which offer researchers and students in academia an introduction to respective topics promoting efficient and successful work in the context of HPC. ProTHPC normally takes place multiple times a year at the HKHLR member universities of Hessen (Darmstadt, Frankfurt, Gießen, Kassel, Marburg).
Due to COVID-19, this ProTHPC will be held entirely online as a web conference.
The courses of the program are modules that are held on different days within a full week. See the module description below. The topics are aligned to the skill tree of the HPC certification forum. The modules can be booked seperately.
All courses consist of lectures, supplemented with practical exercises. They will be held in English.
Schedule for all modules
- 09:00AM - 12:00AM Lectures
- 12:00AM - 02:00PM Break / Individual time to work on exercises
- 02:00PM - 03:00PM Exercise discussion, Q&A time
We strongly recommend that to participate in this workshop, you have an account on one of the Hessian HPC clusters (Lichtenberg, Goethe-HLR, JustHPC, Kassel Linux Cluster, or MaRC2). The practical exercises for all modules require a machine with Linux installed, and module 2 specifically will be conducted on these clusters. We will also provide the course material via the clusters.
With your registration, we will use your contact information for organizational reasons:
- to inform you about workshop details,
- about agenda changes, and
- to contact you, in order to give us feedback about the workshop (evaluation).
The data will not be transferred to third parties. The personal data will be deleted two months after the closing of the workshop. We evaluate the data statistically to improve our service for your research. For further questions, please contact: firstname.lastname@example.org.
Monday, March 15, 2021
Linux and Shell Scripting – Quick Access to HPC Systems
Level: basic - intermediate
HPC Skill Tree: USE1.2
This course is an introduction to the Linux command line interface, as found on most HPC systems.
It covers the basics of the command line as well as the fundamentals of shell scripting and prepares their use for the automation and organization of complex workloads in order to enable an easy usage of HPC Systems.
Tuesday, March 16, 2021
Batch Job Scheduling
Level: basic - advanced. Adapted exercises offer opportunities for knowledge enhancement at all levels. As job scheduling makes use of shell scripting, it is recommended to attend the course introduction into Linux and shell scripting in the morning as well.
HPC Skill Tree: K4.2
The resources of HPC systems are managed by a job scheduler, therefore knowing how to appropriately use the scheduling system is critical for working on HPC systems. This course gives an introduction to the concepts of batch job scheduling and teaches techniques that facilitate submitting and managing multiple and interdependent jobs by using advanced features of job schedulers. The concepts are illustrated using mainly the SLURM scheduler, but examples for Sun Grid Engine (used in Marburg) are also provided.
Wednesday, March 17, 2021
Linux Software Build Process
Level: intermediate - advanced
HPC Skill Tree: USE3
In this course participants will be introduced to the basics of building software applications in the Linux command line, which is the common working environment on HPC systems. In a first step, we will discuss usage of a compiler in the command line. This involves using a pre-processor, linking to libraries, typically used compiler flags, optimisation as well as generating serial and parallel code. In a second step, participants will be introduced to the automation of the build process by using Makefiles. We will teach how to set up Makefiles (setting variables, defining targets and dependencies, linking to libraries, ...) in order to compile self-written applications. We will also briefly discuss usage of automated build systems using configure files that are used in many open source software projects.
Thursday, March 18, 2021
Version Control with GIT
Level: basic - intermediate
HPC Skill Tree: SD3.2
Version Control is an essential tool for project management. Therefore we present the distributed version control system Git, which is well established in the Linux community. Git can be used not only for large projects - such as kernel development - but also for working together on smaller projects or for versioning your own projects. Additionally Git does not only work for software projects. We strongly encurage to use it in other projects like writing a thesis as well.
This Course will cover the basic principles of version control with Git as well as some more advanced workflows with branches. We will show how to use git's features to facilitate collaborative effort on a project and dealing with the resulting merge conflicts.