High-Performance Code Generation Using CorePy
Andrew Friedley
afriedle@indiana.edu -
Indiana University, USA
Christopher Mueller
chemuell@indiana.edu -
Indiana University, USA
Andrew Lumsdaine
lums@indiana.edu -
Indiana University, USA
Although Python is well-known for its ease of use, it lacks the performance
that is often necessary for numerical applications. As a result, libraries
like NumPy and SciPy implement their core operations in C for better
performance. CorePy represents an alternative approach in which an assembly
language is embedded in Python, allowing direct access to the low-level
processor architecture. We present the CoreFunc framework, which utilizes
CorePy to provide an environment for applying element-wise arithmetic
operations (such as addition) to arrays and achieving high performance while
doing so. To evaluate the framework, we develop and experiment with several
ufunc operations of varying complexity. Our results show that CoreFunc is an
excellent tool for accelerating NumPy-based applications.
Citation
A Friedley, C Mueller, A Lumsdaine, High-Performance Code Generation Using CorePy in Proceedings of the 8th Python in Science conference (SciPy 2009), G Varoquaux, S van der Walt, J Millman (Eds.), pp. 23-28
BibTeX entryFull text PDF
Copyright
The content of the articles of the Proceedings of the Python in
Science Conference is copyrighted and owned by their original
authors.
Terms of use For republication or other use of the material published, please contact the copyright owners to obtain permission.
Terms of use For republication or other use of the material published, please contact the copyright owners to obtain permission.