GPU JIT Compilation, Documentation, and Unit Tests
My GSoC Contributions to STARDIS
William Black
STARDIS is a Python package that is used in the study of spectra of supernovae. My internship was meant to add CI/CD infrastructure to the codebase as well as speedups through refactoring and compilation for GPU targets.
My project consisted of three main objectives:
Adding CUDA JIT compilation
Refactor code for opacities
Use numba.cuda to run STARDIS code compiled for GPU
This effort is ongoing for the rest of the codebase
The two files I worked on (and continue to) are here and here.
Add unit tests to the project
Use pytest to add unit tests to the project
Add integration with GitHub Actions
The goal was to set tests up for the project and integrate them with GitHub, rather than looking for full test coverage.
Find the test integrations on GitHub here.
A Metric
My contributions to STARDIS during the contribution period resulted in 25+ merged pull requests, and that number will continue to rise as I continue to collaborate with the project.
Git & GitHub
This experience saw my knowledge and use of Git and GitHub improve drastically. The collaborative nature of this project gave me an opportunity to learn about and use relevant features of these version control technologies, as well as the space and patience to do so. It was the perfect environment for this.
Acknowledgements
I would like to thank Josh Shields, Wolfgang Kerzendorf, Sona Chitchyan, Jaladh Singhal, Isaac Smith, Bea Lu, Vicente Olivo, Andrew Fullard, and Atharva Aarya for their support, guidance, and attention during my time at GSoC. Thank you to GSoC and Google for this incredible opportunity.