06.07.2020-08.07.2020

High-Performance Computing with Python

Closed
Online
Vacancies not available
Free

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.

Closed