Live Demo (Requires DCP Key):
My inspiration for DCP comes from the global pandemic currently being faced around the world. One of the most important tools for epidemiologists is the Monte Carlo simulation. This allows scientists to build complex experiments that allow researchers to create highly sophisticated pandemic models. These models and graphs are then used by government agencies and other decision makers to create critical strategic choices.
Unfortunately, the main issue scientists face with the Monte Carlo method is the lack of compute power. For a proper simulation to work, millions of simulation runs are needed for a statistically significant result. This is why when I discovered DCP, I knew that Covid-19 modeling would fully harness the power of distributed computing.
What it does
Our program creates statistical models from human simulations to be used in scientific research and decision making. We leverage the DCP platform to run thousands of simulations in parallel to generate probabilities where it can be shown to the user through a dashboard.
How we built it
For each simulation run, the script simulates the movement of 5000 individuals within a confined space. At the beginning, a percentage of the population are infected. On each tick, each of the infected individuals have a chance of infecting another individual within a specific radius. Individuals will also continue to spread the infection for a certain amount of days, after which they become recovered.
Challenges we ran into
One of the major challenges we ran into was balancing the allocation between different DCP processes. As we needed to run millions of simulations, finding the ratio between frames, iterations, and compute slices was a difficult task. Another challenge we faced was that there was unfortunately an issue with the scheduling software for DCP, causing many jobs to hang or fail. Nevertheless, we persevered through these issues to create our final project, Distributed Covid Simulation.
Accomplishments that we're proud of
In the end, I am very pleased with the final product. Running thousands of SIR simulations is no easy feat, and it is a very satisfying experience to watch the system run in real time. I am proud of the achievements I’ve made within the 36 hours given, including implementing the simulation calculations, real-time graphing processes, and Distributed Computing Protocol systems.
What we learned
This project was my first time implementing pandemic models using SIR. By leveraging online resources and other professionals in the field, I was able to learn the nuances of Monte Carlo simulations for pandemic modeling. Although I understood the basic idea, there was still a lot to be learnt about basic reproduction numbers and effective reproductive numbers. I also learnt how to leverage the DCP platform to run thousands of simulations at the same time, dramatically reducing the total execution time.
What's next for Distributed Covid Simulation
Unfortunately, I was not able to implement all the features I wanted in the given time frame. One thing I would have done differently was to allow user-defined variables to be inputted into the simulation. This would allow the end user to play around with the data, creating a more interactive experience.