Improving the Performance of Numerical Calculations in Python on the Cell Architecture – Københavns Universitet

Improving the Performance of Numerical Calculations in Python on the Cell Architecture


Masters defense by Simon B Jensen and Michael Rasmussen


While the Cell Broadband Engine Architecture has been around for a number of years and offers impressive theoretical performance, it has not been widely adopted by the broad scientific community. This is in part due to requiring software to be specifically tailored for the architecture in order to realize its full potential.

Ideally we would like to be able to write our numerical applications in a high--level language, and have them effectively utilize the underlying hardware, regardless of architectural details. Numerical Python is a popular choice due its ease of usage and decent performance, unfortunately the current version does not harness any of the Cells special features.

In this thesis we present a Python module for speeding up Numerical Python applications on the Cell Broadband Engine Architecture.  By intercepting calls to Numerical Python, a tree of operations on N--dimensional arrays can be built. The resulting expression trees are then lazily evaluated by generating C code, that is just--in--time compiled, and executed on the Synergistic Processing Elements of the Cell architecture.

In its present form the library is able to provide an improvement in the execution speed of most basic operations, with several of our tests demonstrating improvements of a factor 10. In one case, where working on expression trees means that extraneous memory transfers can be avoided, the time used was reduced over 100 times.

Location: Meetingroom A+B, DIKU, Universitetsparken 1

Time: Friday March 11th 14.00

Censor: Docent Robin Sharp, DTU

Supervisor: Brian Vinter