Short Course: Advanced Python for Climate Science: from Numpy to Parallel Computing
3-4 January 2015
This course builds upon the short course “A Beginner’s Course to Using Python in Climate and Meteorology,” and is geared toward those who already have some experience writing Python programs and understand Python control structures. This intermediate/advanced course will introduce standard methods to write efficient programs using vector-based computation in NumPy to retain the simplicity of Python but process data at the speed of low-level languages.
We will learn to master this package in detail, including advanced features such as memory mapping and broadcasting. We will then introduce ways to identify where the speed or memory bottlenecks are in an application and learn about techniques to speed up execution and/or conserve memory where necessary. This will include tools that go beyond NumPy such as Numexpr, Numba, or Pytables. This can also involve relying on other languages such as Fortran, C or Cython, whether directly and by using tools that have a layer of C underneath. As a by-product, these techniques can also be applied to leverage legacy code in Fortran or C when migrating to Python.
Finally, with basic modern machines hosting multiple CPU cores. GPUs, and the access to clusters being more common thanks to cloud services, learning to leverage these for parallel computing is also a key technique to learn about and can bring major increases in efficiency. We will dive into these topics at the end of the second day as much as time permits.
Students with no prior knowledge of Python are encouraged to sign-up for the two-day Beginner's Python course by Johnny Lin.
All attendees will need to bring a laptop (with power adapter) that has a complete Python distribution. Instructions will be emailed to registered attendees before the course begins on how to install Python and the other needed libraries.
For more information please contact the instructor of the course, Jonathan Rocher, Enthought Inc, 515 Congress Ave, Austin TX 78701, (tel: +1 512 536 1057; email: email@example.com).