The Luxembourg SuperComputing Competence Center will host a two-half-day online course introducing how to use Python in the HPC. The course will be divided into two parts: the first will cover using Jupyter notebook on HPC infrastructure, profiling and using NumPy effectively, while the second will focus on improving performance with python parallel packages.
For whom?
The workshop is designed for individuals who are interested in advancing their skills and knowledge in Python-based scientific and data computing. The ideal participants would typically possess basic to intermediate Python and NumPy skills, along with some familiarity with parallel programming. This workshop will give a good starting point to leverage the usage of the HPC computing power to speed up Python programs.
What will you learn and how?
In this workshop, participants will explore the process of improving Python code for efficient execution. Even if already familiar with Python and NumPy, participants will start by mastering profiling and efficient NumPy usage as these are crucial steps before venturing into parallelization. Once the code is fine-tuned with NumPy, the participants will explore the utilization of Python's parallel libraries to unlock the potential of using multiple CPU cores.
Learning outcomes
After completing this course, participants will be able to:
• have been exposed to the HPC system and acquired basic knowledge on its operation;
• know how to connect and launch jobs both interactively and in batch mode;
• be well-equipped to harness Python's potential for high-performance tasks on the HPC infrastructure.
Prerequisites
• Basic knowledge on SLURM
• A basic understanding of Python programming
• Familiarity with Jupyter Notebook (installed and configured)
• A basic understanding of NumPy and linear algebra
• Familiarity with parallel programming
GPU Compute Resource
Participants attending the training will be given access to the MeluXina supercomputer during the session. For more information about MeluXina, please refer to the Meluxina overview and the MeluXina – Getting Started Guide.
Agenda
This two-half-day course will be hosted online in Central European Time (CET) on
January 30th, 2025 (9:00 AM – 12:00 PM CET) and
January 31st, 2025 (9:00 AM – 12:00 PM CET).
January 30th, 2025 (9:00 AM – 12:00 PM CET) and
January 31st, 2025 (9:00 AM – 12:00 PM CET).
Important: Registration for both sessions is mandatory. Limited spots available!
Schedule:
Day 1 | Using Jupyter notebook on HPC infrastructure, profiling and using Numpy effectively:
o Setting up a Jupyter notebook on an HPC node
o Taking time and profiling python code
o Numpy basics for replacing python loops for efficient computations
Day 2 | Improving performance with python parallel packages:
Day 2 | Improving performance with python parallel packages:
o Use case understanding and Python implementation
o Numpy implementation
o Python’s Multiprocessing
o PyMP
o Cython
o Numba and final remarks
Contact person for more information:
Oscar CASTRO-LOPEZ, oscar.castro[at]uni.lu