30-31 March 2020
Physics building
Europe/Berlin timezone

The course has been CANCELLED

Due to the exceptional health situation provoked by the COVID-19 outbreak, the course has been cancelled.


Cython in Depth

This course is offered as a coooperation between the Competence Center
for High Performance Computing in Hessen (HKHLR)
and the Center for Scientific Computing (CSC) in collaboration with FIAS.

What is Cython?

Cython is a general purpose programming language that adds the static type system of C and C++ to Python.

Cython's beauty is this: it combines Python's expressiveness and dynamism with C's bare-metal performance while still feeling like Python.

Cython -- a guide for Python programmers (K. W. Smith)

Cython is also a compiler that can translate Python code into efficient C or C++ code, which can be used as a Python extension or as a standalone executable.

Cython is an integral part of foundational projects in the Python world. It is battle-tested in real-world environments, and it continues to innovate to provide better performance, greater ease of use, and better coverage of new Python features.

Description of the course

The goal of the course is to get to know the Cython language and to learn to use it to speed up Python code.

The participants will learn also how to wrap external C libraries to efficiently and comfortably use them from Python.

The course targets medium level to experienced Python programmers who want to break through the limits of Python performance.

A basic understanding of the C language is helpful but not required.

Topics covered in the course:

  • building a Python extension module with Cython + distutils
  • speeding up Python code with Cython
  • interfacing with external C code
  • interfacing with C++ and using C++ features in Cython
  • processing NumPy data with memory views
  • parallel data processing with OpenMP

Exercises:

The course will include exercises. A desktop computer will be available for each participant, but each participant can use her/his own laptop if wished.

Tune your own code:

Attendees who have a piece of their own code that they would like to adapt and speed up using Cython, can send it to the organisers to include it in the course as a case study.

Please make sure that it is easily runnable and self-contained (except for common processing libraries like NumPy) and includes all necessary input, e.g. in a script or Jupyter Notebook. Please also include a benchmark command that evaluates its performance within less than one minute of runtime.

If multiple participants submit their examples, a suitable choice will be made based on time constraints.

If you are interested in tuning your code, please send us the code at least one week before the course (to david.palao@hpc-hessen.de).

Trainer

Dr. Stefan Behnel, core developer of Cython

Starts 30 Mar 2020 09:00
Ends 31 Mar 2020 17:00
Europe/Berlin
Physics building
01.120
Goethe Universität, Campus RiedbergMax-von-Laue-Straße 1 60438, Frankfurt am Main
 
Affilation Euro
Bachelor / Master Students from Germany 80,00
PhD students from Germany 80,00
Members of German universities and public research institutes 80,00
Others (non academic) 300,00

Lunch is available in various locations in the vicinity of Riedberg campus (self-paid).