Course/Event Essentials
Training Content and Scope
Other Information
In this course, you will learn about parallel programming with Python, a language that is becoming increasingly popular among researchers because of its simplicity and the availability of dedicated programming libraries. In large computing systems, it is essential to properly exploit heterogeneous architectures, and here you will understand the different challenges and how to overcome them with different Python functions for CPU and GPU platforms that are directly applicable to scientific computing.
What.
In this course, you will
- Understand the limitations and benefits of parallel programming and its use with Python
- Implement code using different libraries for parallel programming on CPU and GPU, including PyCUDA or mpi4py.
- Experience how to achieve high performance with Python using the supercomputing facilities at SURF.
For whom.
Anyone interested in learning how to achieve high performance with Python codes.
Prerequisites:
- Basic knowledge of Linux
- Basic knowledge of Python and use of Jupyter notebooks
You must have:
- Your own laptop with an up-to-date browser and a terminal emulator. Using the operating systems Linux and macOS is preferred but not mandatory. For Windows users, we recommend downloading MobaXterm (portable version) as a terminal emulator.
Schedule
Day 1 (CPU):
10:00 to 11:00: Introduction to Python and Parallel Computing
11:00 to 11:15: Coffee break
11:15 to 12:30: Hands-on: Introduction to Python and parallel programming (threading/multiprocess)
12:30 to 13:00: Lunch
13:30 to 15:00: Parallel programming with Python (Profiling, Numba)