Why did I do it?
I'm currently researching under Dr. Olivier Hervet to improve Bjet_MCMC because I'm interested in working with computationally demanding programs, and I think his work modeling Active Galactic Nuclei is really fascinating. I'm really excited to be able to contribute to the project.What did I accomplish?
I've been using the Hummingbird Computer Cluster to test Bjet and gather data on its performance. I've written a bunch of python to automate tasks such as extracting and interpreting Bjet's output and creating graphs. I've also modified the code base to expose previously hidden details about the proccess for more insight into Bjet's in-practice performance. I then took my results, prepared a presentation, and shared my findings with the UCSC Very High Energy Astrophysics Department. I was able to find parameters that reduced runtime by ~20% without impacting accuracy.I continue to contribute to the Bjet repository on github. I recently added a feature that fits an exponential decay curve to the convergence of the MCMC process. I also am adding my findings about Bjet's performance to the documentation.
What did I learn?
The most important thing I'm learning right now is how to deal with a large, complex project, that I didn't write myself. Most of my programming at school is individual and small scale, so working to augment and improve an existing codebase is a new experience.I've also gotten to practice larger scale software developement, and I have been solving different problems then I usually do, like deciding how I am going to organize and structure my code. This is because I wasn't just making a few graphs, but building out testing infrastructure. Bjet was not designed to be testable in this way so I had to parse a lot of text files to get the data. By making a few good abstractions I was able to keep my code readable and extensible.