NumPy on the CELL Broadband Engine – Københavns Universitet

NumPy on the CELL Broadband Engine

Specialeforsvar ved Jens Ipsen og Christian Wolfgang



NumPy is a well founded module for Python for computing scientific calculations. Its most important features are its multidimensional array and its functionality to operate on it. NumPy is currently supported by major platforms and architectures, but its core functionality is only implemented sequentially. Even though NumPy runs on the Cell Broadband Engine(Cell BE), it does not utilize the Cell BE's compute intensive processors.

By extending NumPy to utilize the extra processors, it can potentially be 20 to 25 times faster than its main processor, in some cases even faster. Since NumPy is a Python module, it is very easy to use and program, because it has an intuitive syntax. By developing such a module, non-computer scientist can use the Cell BE without having to get their hands dirty.

In this master thesis we will implement a version of NumPy, that utilizes the specific hardware of the Cell BE. It will be based on a fast and  exible kernel for dispatching NumPy functionality on the compute intensive processors. This kernel will also be in charge of allocating memory according to the given needs.

To test the implementation, we have developed three test programs, which will use different NumPy functionalities, both core functionality, but also functionalities given from external libraries, such as linear algebraic routines from BLAS and LAPACK. We will compare our implementation, running on a PlayStation 3, to NumPy running on different architectures.

Supervisor: Brian Vinter, DIKU
Censor: Christian Storm Pedersen, Århus