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.

1 comment: