Fast Bohrium frontend in Python

The Bohrium runtime system can accept input from different front-end programming languages, such as NumPy and C++. With Bohrium it is generally possible to speed up a NumPy application that uses a sufficiently large vector size. However, for small vectors, the overhead in NumPy (and to some extent the JIT compilers) will reduce performance. Preliminary testing shows that much of this overhead is related to the way NumPy is processing the data, and that a tiny NumPy-like library that uses pybind and emulates NumPy gives significant performance improvements. With a working NumPy-like solution it is possible to accellerate programs that are computationally intensive, but with a low degree of possible vectorization. For a larger scope, this can be integrated with NumPy, allowing seamless conversion to ndarrays when reaching unsupported usage, making it a plug-in replacement for NumPy.

Activities: Implement a NumPy-like abstraction for Bohrium on top of PyBind

Contact: James Avery, avery@nbi.ku.dk or Kenneth Skovhede, skovhede@nbi.ku.dk

Area: Project Bachelor Masters

Tags: Bohrium, Python, HPC