Skip to main content
internship discussion group photograph

Ben Hardy

Ben Hardy is a 2nd year undegraduate studying computer science at Lancaster University.

Gemlib: A Python library for epidemic modelling


Why did you apply for this internship?

I wanted to gain hands-on experience in research software engineering and collaborative work. I have an interest in modelling and high-performance computing, both of which I will have the opportunity to explore during this internship.

What did you hope to gain in completing this project?

In completing this project, I hoped to gain experience in developing robust, scalable software, deepen my understanding of scientific modelling, and explore the use of high-performance computing on computationally intensive tasks.


Project Overview

Gemlib is a Python library aimed to assist researchers in producing epidemic models by abstracting technical implementation, requiring only model parameters to be entered.

My project was to port one of the library’s main models from TensorFlow to JAX, and to evaluate the performance differences between the two.

What were the key results of your research project?

Once compiled and running on a GPU, the JAX implementation was significantly faster than the original TensorFlow version of the model.

Throughout the project, I developed a lot of technical skills, from interacting with a SLURM HPC system, to working with dependency managers like Poetry.



How do you feel you have benefited from completing this internship and has it made you consider future career paths?

I’ve developed a variety of technical skills, such as gaining experience in using a HPC system, working with dependency managers, and improving my ability to write unit tests. I have also gained valuable experience working as part of a team in a larger codebase, highlighting the importance of communication and collaboration.

The project has created an interest in software engineering, and I’d like to continue to gain experience in this field.


Return to article index