What customers say ...
Good course. Very competent trainer for this introduction. The course offers wide spectrum of topics and goes into depth were participants need it most.
Helmut Dittrich, CEO DiFis-Engineering UG, arrow-fix.com, about the German introducation to Django "Einstieg in Django" mehr dazu ...
Highly recommended. Many aha-experiences and took home many positive inspiratons.
Helmut Dittrich, CEO DiFis-Engineering UG, arrow-fix.com, about the German advanced Django course "Django für Fortgeschrittene" mehr dazu ...
Good course. Very fast progress without any prior Python knowledge.
Daniel Fuchs, GIGATRONIK Ingolstadt GmbH, about the German version of the course "Python for Programmers" more ...
Very nice course, got many useful suggestions.
Dr.-Ing. Ralf Wieland, Institut für Landschaftssystemanalyse, Leibniz-Zentrum für Agrarlandschaftsforschung e.V. about the German version of the course "Python for Scientists and Engineers" more ...
Mike is an outstanding teacher ... I will look for his classes in the future.
Jannifer Trasti, Software/Systems Engineer, Sandia National Laboratories, Albuquerque, NM, USA more ...
The Python Summer Course was a very good opportunity to know almost all about Python. ... Highly recommended!!
Fabio Lamanna, Ph.D. Complex Transportation Networks, Trieste, Italy more ...
We had a wide range of Python experience in our group and each person gained something valuable to take away....
Dr. Ryan Woodard, Chair of Entrepreneurial Risks, ETH Zurich, Switzerland more ...
I can absolutely recommend this course to everybody who wants become productive with Python very quickly. ...
Dr. med. Beat Meister, Bern, Switzerland more ...
The standard Python for programmers and the customized "Python for Experts" course where a great success. ...
Bart Hillaert, Alcatel-Lucent Belgium more ...
[The trainer] knows well what scientists need, so his hints are very practical and valuable. The hands-on course [..] covers a wide range of examples and will be very helpful in my daily work. ...
Dorota Jarecka, University of Warsaw about the course "Python for Scientists and Engineers" more ...
The course "Python for Scientists and Engineers" is a very useful introduction to Python programming for scientific applications ...
Dr Mihai Duta, Oxford Supercomputing Centre more ...
Very good introduction to the programming language.
Matthias Enderle, freelancer programmer more ...
Fast Code with the Cython Compiler
This course is given by a core developer of the Cython open-source project.
Target Audience
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.
Motivation
The Python programming language has been used successfully in a large number of application domains. Even performance critical applications, such as scientific computation frameworks or text processing applications, have been realized using Python in order to benefit from short development cycles and highly maintainable code.
However, the interpreted language also has its weaknesses. Tight algorithms in numerical computations and character processing often suffer from the overhead of object operations in arithmetic expressions or memory copies in string slicing. In high performance applications, the optimizations that can be performed at the language level may not be sufficient.
This is where the Cython programming language shows its strength. Cython is a general purpose programming language that forms a best-of-both-worlds cross between the Python language and the ubiquitous datatypes of the C/C++ language. It comes with an optimising compiler that translates Python code into C code for Python extension modules, and tightly adapts the generated code to the available static type information.
Cython code can be written as high-level Python code and manually optimised in well selected hot-spots by statically declaring data types or calling directly into external code written in C, C++ or compatible languages. This makes the entire range from simple, expressive Python code down to highly optimised, low-level C code available for programming in a single language.
The objective of this course is to get to know the Cython language, and to learn how to use it to speed up Python code by orders of magnitude. You will also learn how to wrap external C libraries to efficiently and comfortably use them from Python.
Content
My first Cython extension
- using pyximport to quickly (re-)build extension modules
- using cython.inline() to compile code at runtime
- building extension modules with distutils
Speeding up Python code with Cython
- fast access to Python's builtin types
- fast looping over Python iterables and C types
- string processing
- fast arithmetic
- incrementally optimizing Cython code
- multi-threading outside of the GIL (Global Interpreter Lock)
Interfacing with external C code
- calling into external C libraries
- building against C libraries
- writing Python wrapper APIs
- calling C functions across extension module boundaries
Case studies
The participants are encouraged to send in short code examples from their own experience that they would like to see running faster by using Cython. Based on general interest and practicality, one or two of these examples will be examined as a case study. These examples must be available to the teacher at least one week before the course, and must be short but complete executable examples, including sufficient input data for benchmarking. Please be aware that example code that requires a substantial amount of explanation or background knowledge about a specific application domain will not be accepted.
Course Duration
1 day
Exercises
The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.
Course Material
Every participant receives comprehensive printed materials that cover the whole course content as wells a CD with all source codes and used software.
Recommended Module Combinations
You should have intermediate Python experience or attend the course Python for Programmers before. You might be interested in the modules Advanced Python, Optimizing of Python Programs or Python Extensions with Other Languages as well. Also, have a look at the Python Power Course, eight days of Python courses in a row.
The Python Academy is sponsor of PythonCamp 2012.
The Python Academy is sponsor of EuroPython 2012.
The Python Academy is sponsor of EuroSciPy.
News
Python Academy sponsors EuroPython conference 2012
details ...
Python Academy sponsors EuroSciPy conference 2012
details ...
Python Academy sponsors PyCon DE conference 2012
details ...
Next Meeting of Leipzig Python User Group, May 8, 2012
details ...
Course: "Python für Nicht-Programmierer" (German) in Leipzig April 15 - 18, 2012
details ...
Course: "Python für Programmierer" (German) in Leipzig April 16 - 18, 2012
details ...
Course: "Python für Wissenschaftler und Ingenieure" (German) in Leipzig April 19 - 21, 2012
details ...
Course: "Einstieg in Django" (German) in Leipzig April 23 - 25, 2012
details ...
Course: "Django für Fortgeschrittene" (German) in Leipzig April 26 - 27, 2012
details ...
Python for Non-Programmers (English) in Leipzig June 4 - 7, 2012
details ...
Python for Programmers (English) in Leipzig June 5 - 7, 2012
details ...
Python Power Course (English) in Leipzig June 8 - 15, 2012
details ...
Advanced Python (English) in Leipzig June 8 - 10, 2012
details ...
High-Performance Computation with Python (English) in Leipzig June 11 - 15, 2012
details ...
PyPy Sprint in Leipzig June 22 - 27, 2012
details ...
Advanced Python at EuroPython (English) in Florence, Italy July 7, 2012
details ...
Introduction to Django (English) in Leipzig October 15 - 17, 2012
details ...
Advanced Django (English) in Leipzig October 18 - 20, 2012
details ...
Python Academy founder receives PSF Community Service Award
details ...