Contributor
Omar Wagih

Colour suborganization - The Need for Speed


Mentors
Michael Mauderer, Thomas Mansencal
Organization
NumFOCUS

Colour, an affiliated project of NumFOCUS, a 501(c)(3) nonprofit in the United States currently uses NumPy for most of its calculations, while NumPy is a highly flexible library, it only runs on the CPU which makes it a little slow when running your code on an array of high quality images, this calls for an option to use the GPU so we can make parallel processing a possibility.

Before adding more libraries and possibly making the maintenance of Colour harder, we should measure where we are at to figure out if increase in speed is worth it, we can only do this by benchmarking the most critical parts of our package, benchmarking is really important as it makes sure that you have an objective measure of how your function performs under simple and intensive ways.

In this project we're going to implement a partial benchmarking suite using ASV (airspeed velocity) and then search for options to use the GPU for calculations instead of numpy to get the functions to perform better, some of the options to research is using CuPy or Bohrium.