11.11.2019-13.11.2019

High-Performance Computing with Python

Closed
CSCS
Vacancies not available
CHF 240.00

The Swiss National Supercomputing Centre is pleased to announce that the "High-Performance Computing with Python" course will be held from November 11-13, 2019 at CSCS in Lugano, Switzerland.

Closed

Content

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
- High-performance NumPy
- Just-in-time compilation with Numba
- Distributed-memory parallel programming with Python and MPI
- Bindings to other programming languages and HPC libraries
- 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.

Instructors

- Dr. Rafael Sarmiento (Computational Scientist, CSCS)
- Dr. Tim Robinson (Computational Scientist, CSCS)
- Dr. Theofilos Manitaras (Computational Scientist, CSCS)
- Dr. Vasileios Karakasis (Group Lead, CSCS)

Agenda

Monday, November 11, 2019
 * (10:00 - 10:45) Introduction to HPC and Python for HPC
 * (10:45 - 12:00) Python distributions and tools for HPC
 * (12:00 - 13:00) Lunch
 * (13:00 - 14:45) Vectorization: NumPy/SciPy stack
 * (14:45 - 15:00) Coffee break
 * (15:00 - 15:45) Profiling and memory management in Python
 * (15:45 - 17:00) Just in time compilation with Numba (1)

Tuesday, November 12, 2019
 * (09:00 - 09:30) Just in time compilation with Numba (2)
 * (09:30 - 10:15) Dask: task graphs
 * (10:15 - 10:30) Coffee break
 * (10:30 - 11:40) Dask: data structures
 * (11:40 - 12:00) Visit to the Machine Room
 * (12:00 - 13:00) Lunch
 * (13:00 - 14:00) Language bindings: F2PY
 * (14:00 - 14:45) Language bindings: CFFI (1)
 * (14:45 - 15:00) Coffee break
 * (15:00 - 15:30) Language bindings: CFFI (2)
 * (15:30 - 16:00) Language bindings: other solutions
 * (16:00 - 17:00) Optimizing code with Cython (1)

Wednesday, November 13, 2019
 * (09:00 - 10:15) Optimizing code with Cython (2)
 * (10:15 - 10:30) Coffee break
 * (10:30 - 11:00) Fast evaluation of array expressions with NumExpr
 * (11:00 - 12:00) Just in time compilation with Numba: GPU (1)
 * (12:00 - 13:00) Lunch
 * (13:00 - 13:30) Just in time compilation with Numba: GPU (2)
 * (13:30 - 14:45) Computing on the GPU with CuPy
 * (14:45 - 15:00) Coffee break
 * (15:00 - 15:45) Parallelizing workflows with IPyParallel and MPI4Py
 * (15:45 - 16:00) Conclusions

Registration

All participants must register for the course. The registration fee includes coffee breaks and lunches throughout the three day course.

Course Fee: 240 CHF

Deadline for registration: Sunday, November 3, 2019

Kindly note that the course can take place only if there are sufficient confirmed registrations received by the deadline. The minimum number of participants is 8 and the maximum number is 25.

Please contact Guilherme Peretti-Pezzi (guilherme.peretti-pezzi@cscs.ch) for questions related to the course content and reception@cscs.ch for questions related to the event logistics. 

Kindly note that no parking space is available at the Swiss National Supercomputing Centre. The closest bus stop to the centre is Lugano, Stadio. From Lugano railway station, you should take bus number 4 or 6.

Suggestions regarding travels and accommodation are available here.


You are encouraged to travel by public transportation. There is a Park & Ride Resega parking lot, within five minutes walk from CSCS.

We look forward to welcoming you at CSCS!