MASPLAS '08

Interpreted programming languages can be used to increase the ease of programmability for computational scientists. The Python programming language is easy to read and write and offers a greater degree of interaction between the programmer and machine, than traditionally compiled languages. Computational scientists find it hard to justify using an interpreted language like Python though, because the benefits accrue at the cost of efficiency. One way to benefit from the convenience and flexibility of Python while still obtaining high performance is to use a group of pre-defined, optimized extensions like NumPy. By venturing outside of the pre-defined set of functions we must either sacrifice performance, or use something like SWIG or WEAVE to manually incorporate faster compiled code into Python. We explore a motivating example that includes some of the more computationally intensive cores of various algorithms and discuss the inherent overhead involved in the use of an interpreted programming language like Python. We also propose an automated system to translate and compile a subset of Python with hopes of an increase in performance over pure Python.

Valid XHTML 1.1 Valid CSS!