The open-source TARDIS supernova simulation code is written in Python and accelerated with the Numba just-in-time (JIT) compiler framework. The project for the summer will be to profile the current Numba code and add GPU support where applicable. The student will gain insights into code performance analysis, GPU programming, and open-source science code development (using modern practices such as version control, continuous integration, code review).
Job Description
The student will learn how TARDIS uses Numba, a just-in-time compiler, to optimize its performance. The student will attend regular skills meetings and astrophysics meetings to learn new skills and understand how TARDIS applies to scientific research. The student will improve their knowledge of the git version control system, an integral part of the TARDIS software ecosystem and the wider software development community.
The student will develop their Python skills to improve the current performance of TARDIS on HPC resources, with a focus on GPU computation. This skill development will be assisted by mentors in the TARDIS and Numba communities. They will test their improvements on XSEDE GPU HPC resources (e.g. Bridge-2) to ensure that the goals of increased performance have been met. The code will be made freely available as part of the open-source TARDIS repository.
Computational Resources
The host institution has access to a tier 3 XSEDE facility that will be used in the early stages of this project. We plan to apply for a Startup Allocation on a GPU facility for the later stages of the project as the student works to adapt the code for GPU acceleration.
Contribution to Community
TARDIS is an open-source code that is already widely used in the computational/theory astrophysics community. This means that all of the results from this project will empower supernova theorists (many of which are part of the XSEDE community). Additionally, new insights into optimally using JIT frameworks like Numba will profit the community as TARDIS is open source.
We are moving to increase the complexity of the TARDIS simulation to include more microphysics as well as generating large grids of TARDIS spectra for parameter inference applications. This comes with a commensurate increase in the required computational power. Therefore, the astronomy user community will need TARDIS to be scalable to HPCs. For XSEDE, this will result in a motivated user base that needs HPC resources to perform their research. The optimization of TARDIS for XSEDE resources will enable a higher density of computation for a given amount of HPC resources. Furthermore, we anticipate that GPU-powered simulations will make TARDIS usable across a wider range of XSEDE resources, rather than being confined to traditional HPC hardware.
Position Type
Apprentice
Training Plan
The TARDIS collaboration has a rich history of training students via Google Summer of Code. This knowledge and skill base means that we have several training protocols in place for students. We have twice-weekly skill meetings where mentors in the research group present and discuss a wide range of skills applicable to the TARDIS project. There are also weekly astrophysics meetings to educate members in the scientific applications of TARDIS.
For this project, there will be focused mentorship in the Numba just-in-time Python compiler and how it can be used with GPU computation resources. The TARDIS collaboration has close ties with the Numba development team and they are excited to have TARDIS as a use-case for Numba. The mentor for this project is experienced with HPC usage at both XSEDE facilities and elsewhere.