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 though, 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.
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, Skylla, Kassel Linux Cluster, or MaRC2). The practical exercises for all modules require a machine with Linux installed, and modules 2 and 5 (about schedulers and debugging) 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.
Update June 4:
Attention! The module on Git (module 4 on Thursday, June 11) has been postponed to be held on Monday, June 15!
Monday, June 8, 2020
Linux and Shell Scripting – Quick Access to HPC Systems
Level: basic - intermediate
HPC Skill Tree: USE1-B
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, June 9, 2020
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-B
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, June 10, 2020
Linux Software Build Process
Level: intermediate - advanced
HPC Skill Tree: USE3-B
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.
Monday, June 15, 2020
Version Control with GIT
Level: basic - intermediate
HPC Skill Tree: SD3.2-B
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.
Friday, June 12, 2020
Debugging with TotalView
Level: intermediate - advanced
HPC Skill Tree: SD2.2-B
Debugging is an essential part of software development and application. Debuggers provide considerable support in locating and analyzing undesired program behavior. This holds true, especially in the HPC environment, where the challenges of correct programs is amplified by the programming paradigms employed for parallel computing. The advantages of a debugger compared to "printf-debugging" are often underappreciated. To this end, the HKHLR has organized licenses for the TotalView for all universities in Hessen.
TotalView is installed on all Hessian HPC clusters, and is available for all Hessian researchers.
TotalView primarely supports programs written in C/C++ and Fortran programming languages and with recent updates support for Python was added – that is however not the primary audience for this course
This course will introduce the basics concepts of debugging and provides training in using the TotalView debugger to locate, indentify and analyze software-bugs. TotalView, in contrast to many free debuggers, explicitly supports debugging of parallel applications. The course covers the basic steps of debugging, such as session preparation, processing of core dump files and attaching to a hung process. While it focuses on the TotalView debugger, most concepts are applicable to other debuggers, too. This course uses presentations, supplemented with demonstrations and join in instructions to practice using Totalview.
Access to one of the HPC clusters in Hessian is necessary to follow the demonstrations and hands-on sessions. DIY exercises are available and will be discussed in the after-noon’s Q&A sessions.