Scientific Computing with Python
INSTRUCTORS: Eric Jones and Travis Oliphant.
Sunday, October 24, 9:00 a.m. - 5:00 p.m.
Room 322, Stewart Center
Python has emerged as an excellent choice for scientific computing because of its simple syntax, ease of use, and elegant multi-dimensional array arithmetic. Its interpreted evaluation allows it to serve as both the development
language and the command line environment in which to explore data. Python also excels as a "glue" -- a common need in the scientific arena.
The first half of the tutorial introduces the Python programming language to scientists. The pace is fast and geared toward individuals already comfortable with a programming language such as Matlab, C, or Fortran. Attendees will learn the basic constructs of the language and how to do basic numerical analysis with Python. The 3rd section covers the SciPy library (www.scipy.org) that provides modules for linear algebra, signal processing, optimization, statistics, genetic algorithms, interpolation, ODE solvers, special functions, etc. We also cover scientific plotting with python.
This 2nd half of the tutorial covers advanced topics in scientific computing such as integrating Python with other languages and parallel programming. Wrapping Fortran, C, and C++ codes, either for optimized speed or for accessing legacy code bases is covered in the middle section. Tools such as SWIG, f2py, and Boost Python are all discussed along with common pitfalls and good design practices. The final session covers parallel programming with an emphasis on pyMPI. This tutorial is a companion class to a morning session that introduces Python to the scientific community. A Windows version of Python (Enthought Edition) will be available on CD for attendees to install and use during the tutorial. The installation includes Python, Numeric, SciPy, wxPython, and VTK as well as other packages useful for scientific computing.
|9:00 a.m.||Introduction to the Python Language|
|10:00 a.m.||Array Arithmetic with Numeric|
|11:00 a.m.||Scientific algorithms with SciPy|
|12:00 p.m.||2D visualization and plotting|
|12:15 p.m.||Lunch (On your own at a local restaurant)|
|1:45 p.m.||Introduction to Python as "glue"|
|2:00 p.m.||Wrapping Fortran|
|2:30 p.m.||Wrapping Legacy C/C++|
|3:30 p.m.||Parallel Programming|
The Python Tutorial presentations can be downloaded below.
|Topic||Video Only||Lecture Notes (PDF) (PPS)|
|Part 1||pdf 1.5M pps 2.9M|
|Part 2||pdf 350K pps 1.3M|
www.scipy.org - SciPy, Scientific tools for Python
Enthought Tool Suite - Get Traits, Chaco, and Mayavi, as well as all the other open source projects that Enthought has created for building scientific application.
Eric Jones is the President of Enthought, a scientific computing company based in Austin, Texas. Enthought leads the development of SciPy (www.scipy.org), a large open source library of numerical algorithms for Python. Prior to co-founding Enthought, Eric worked in the fields of numerical electromagnetics and genetic optimization in the Department of Electrical Engineering at Duke University. He has taught numerous courses about Python and how to use it for scientific computing and also serves as a member of the Python Software Foundation. Eric holds M.S. and Ph.D. degrees from Duke University in Electrical Engineering and a B.S.E. in Mechanical Engineering from Baylor University.
Travis became infatuated with Python for numerical and scientific programming while completing his Ph.D. in Biomedical Engineering at the Mayo Clinic from 1996-2000. An early contributor to the documentation for Numeric Python, he has submitted several bug-fixes and enhancements to Numeric. He is now the de-facto maintainer of the Numeric source. SciPy grew out of a collaboration with Eric Jones and Pearu Peterson to collect the disparate tools they had all been working on into one package. As an assistant professor of Electrical and Computer Engineering at Brigham Young University, Travis enjoys working on novel biomedical imaging methods and general inverse problems. He lives in Spanish Fork, UT with his wife and 4 (nearly 5) children.
Researchers should cite this work as follows:
Eric Jones; Travis Oliphant (2004), "Scientific Computing with Python," http://nanohub.org/resources/99.
Purdue University, West Lafayette, IN