Online
06.07.2020-08.07.2020
High-Performance Computing with Python
The Swiss National Supercomputing Centre (CSCS) is pleased to announce the workshop High-Performance Computing with Python, which will be held online from July 6 to 8, 2020.
Course Description
Python is increasingly used in high-performance computing projects. It can be used as a high-level interface to existing HPC applications and libraries, as an embedded interpreter, or directly.
This is a new edition of the course originally developed by Dr. Jan Meinke and and Dr. Olav Zimmermann from JSC. The course combines lectures and hands-on sessions. We will show how Python can be used on parallel architectures and how to optimize critical parts of code using various tools.
The following topics will be covered:
- Interactive parallel programming with IPython
- Profiling and optimization
- Vectorization with NumPy and the SciPy stack
- Just-in-time compilation with Numba
- Distributed-memory parallel programming with Python and MPI
- Bindings to other programming languages
- Interfaces to GPUs
Target Audience
This course addresses scientists with a working knowledge of NumPy who wish to explore the productivity gains made possible by Python for HPC.
Schedule
Monday, July 6, 2020
09:00 - 09:05 Welcome
09:05 - 09:15 Course accounts
09:15 - 10:15 JupyterLab tutorial
10:15 - 10:30 Break
10:30 - 11:00 Introduction to Python for HPC
11:00 - 12:00 Vectorization: NumPy/SciPy stack
12:00 - 13:00 Lunch
13:00 - 13:30 Profiling and memory management in Python
13:30 - 14:00 Just in time compilation with Numba (Part 1)
14:00 - 14:15 Break
14:15 - 15:00 Dask: task graphs
15:00 - 16:00 Dask: data structures
Tuesday, July 7, 2020
09:00 - 10:00 Just in time compilation with Numba (Part 2)
10:00 - 10:15 Break
10:15 - 12:00 Optimizing code with Cython
12:00 - 13:00 Lunch
13:00 - 14:00 Language bindings: F2PY
14:00 - 14:15 Break
14:15 - 15:00 Language bindings: CFFI
15:00 - 16:00 Q&A
Wednesday, July 8, 2020
09:00 - 10:00 Just in time compilation with Numba: GPU (Part 1)
10:00 - 10:15 Break
10:15 - 12:00 Just in time compilation with Numba: GPU (Part 2)
12:00 - 13:00 Lunch
13:00 - 14:00 Computing on the GPU with CuPy
14:00 - 14:15 Break
14:15 - 15:00 Parallelizing workflows with IPyParallel and MPI4Py
15:00 - 15:15 Conclusions
15:15 - 16:00 Q&A
Instructors
Dr. Rafael Sarmiento (Computational Scientist, CSCS)
Dr. Timothy Robinson (Computational Scientist, CSCS)
Dr. Theofilos Manitaras (Computational Scientist, CSCS)
Dr. Vasileios Karakasis (Group Lead, CSCS)
Participation Fee
Registration for this program is free-of-charge. Mentors and learning materials are offered by CSCS.
Registration
All participants must register for the course. Registered attendees will receive the ZOOM details for participation at the email provided a few days prior to the workshop start. The link and password you will receive are unique to you and should not be shared with others.
Deadline for registration: Tuesday, June 30, 2020.
Please note that the workshop can take place only if there are sufficient registrations received by the deadline. The minimum number of participants is eight. Registration for the course will automatically close when we reach the maximum number of participants (30).
Inquiries
Inquiries may be addressed to rafael.sarmiento@cscs.ch.