Thursday, February 23, 2012

Learn High Performance Computing with Python

HPC and Python

You need a programming language that is very close to the metal to get the most performance from the hardware, right? Well, there is more to it. Python (read CPython) is everything but close to the metal. However, it is very well suited for High Performance Computation (HPC). There are several reasons for this:
  • Python comes with powerful data structures that provide or encourage very effective algorithms
  • Python shines in connecting with other languages
  • Python can be used as an effective user interface
  • Development with Python is typically much faster than with low level languages

The course

We offer a course about HPC with Python June 11 - 15, 2012 at Python Academy in Leipzig, Germany.

Who should attend?

This course targets medium level Python programmers who would like to have it both: fast program execution and fast development. Participants should have solid Python knowledge. Alternatively, you can attend the course Python for Programmers (one is offered just the week before June 5 - 7, 2012) to be able to take full advantage of this course.
This course provides expert knowledge for Python in HPC for software developers, engineers, researchers and scientists in many fields who need all the speed they can get from a computer but at the same time would like to use a flexible and elegant programming language that is rated as one of the most productive of the popular languages in use today.

The content

Optimizing of Python Programs
Learn how to profile programs, choose the right data structures and algorithms for the right purpose and get some hands-on experience in making Python programs faster with comparable little modifications.
Python Extensions with Other Languages
Learn about options to connect Python to other languages starting form Python's C-API and hand-written extensions the tour looks a Cython, ctypes, SWIG, Jython, Ironpython, and even f2py to connect with Fortran.
Fast Code with the Cython Compiler
In-depth coverage of Cython with Cython core developer Stefan Behnel. No question about writing extensions and using external C libraries with Cython should remain unanswered after this day.
Numerical Calculations with NumPy
NumPy is the way to work with multi-dimensional numerical arrays in Python. It is fast and provides a high-level programmer interface. This course day teaches you all the basics.
Fast NumPy Processing with Cython
Working with NumPy you need to avoid loops over arrays to make your code fast. While NumPy provides indexing and other techniques to help you here, some types of algorithms are easier expressed with loops. Combining NumPy with Cython you can write fast loops.
Another topic is parallel programming with OpenMP to take advantage of multi core CPUs that become so common place these days.

Organizational things

Register here.

Friday, February 17, 2012

PyCon Number Six

Its always fun again

I've been attending PyCon US every year since 2007. So the 2012 edition marks number six. I've taught two tutorials at every PyCon and will do so this year, which brings the total count to twelve tutorials. Even though the conference is fully sold out, you can still go for the tutorials.


My tutorial Faster Python Programs through Optimization on Wednesday, March 7, 2012 is the first in a series of four (see Tutorials III) that are concerned with making your Python programs faster. This is nice. I always had the feeling that three hours are not enough to cover this topic in enough detail. I've given this tutorial numerous times at PyCon US, OSCON and PyCon AsiaPacific as well as an one-day open course, always improving and updating my material. The room was always well filled with up to 50 or even 70 people. This year PyCon is much bigger than ever before and there will be significantly more people in my tutorial as well.
My second tutorial Plotting with matplotlib on Thursday, March 8, 2012 gives an introduction to the powerful matplotlib library. I teach this topic as part of my course Python for Scientists and Engineers and gave this tutorial twice at EuroSciPy in 2010 and 2011. Scientists just love matplolib but it can be useful for anybody who wants to generate good looking diagrams with just a few lines of Python.


This year I will be even more busy: I will give a talk about HDF5 with Python. HDF5 is the preferred way for many scientists to store large amounts of (numerical) data. But it can be interesting for other programmers too. Tons of data and no need for the relational part? You might want to have a look.


Another premiere this year. We are PyCon sponsor with our logo on the website, a tote bag insert and even a booth. So if you are interested in talking to me, just stop by at booth 322.