View on GitHub

wrystal.github.io

Parallel Disease Transmission Simulation

Summary

We are going to implement a parallel disease transmission simulation system on both GPU and multi-core CPU platforms. Each person is represented by a node on a 2d plane and is in the state of susceptible, infectious, recovered and dead. We will use different parallel techniques and compare their performance improvements.

Background

The SIR Model is an epidemiological model that computes the theoretical number of people infected with a contagious illness in a closed population over time. It has been applied to a variety of disease simulations. S, I and R represent susceptible, infectious and recovered. Image Figure 1[https://docs.idmod.org/projects/emod-generic/en/latest/model-sir.html]

This model can have a great simulation result while it also contains a large amount of calculation. A sequential version are as follows:

for each iteration:
    for node in allNodes:
        neighbours = []
        for othernode in allNodes:
            if distance(node, othernode) < scope_of_infection:
                neighbours.add(othernode)
        probability_of_infection = combine_probability(neighbours);
        update_node_states(node, probability_of_infection);
    move(allNodes)

Challenges

Some difficulties in the parallel solution:

Resources

Papers

[1] Huang C Y, Tsai Y S, Wen T H. Simulations for epidemiology and public health education[M]//Operational Research for Emergency Planning in Healthcare: Volume 2. Palgrave Macmillan, London, 2016: 176-202.

[2] Focks D A, Daniels E, Haile D G, et al. A simulation model of the epidemiology of urban dengue fever: literature analysis, model development, preliminary validation, and samples of simulation results[J]. The American journal of tropical medicine and hygiene, 1995, 53(5): 489-506.

[3] Currie C S M, Fowler J W, Kotiadis K, et al. How simulation modelling can help reduce the impact of COVID-19[J]. Journal of Simulation, 2020: 1-15.

[4] Thompson, R.N. Epidemiological models are important tools for guiding COVID-19 interventions. BMC Med 18, 152 (2020). https://doi.org/10.1186/s12916-020-01628-4

[5] Kephart J O, White S R. Directed-graph epidemiological models of computer viruses[M]//Computation: the micro and the macro view. 1992: 71-102.

[6] Hethcote H W. Three basic epidemiological models[M]//Applied mathematical ecology. Springer, Berlin, Heidelberg, 1989: 119-144.

Machine

Goals and Deliverables

Deliverables of this project:

Platform Choice

Platform

We prefer running the CPU code on Bridge Machines since we found they are more stable than the Latedays Machines. If GPU resources is available on Bridge Machines, we will also run the GPU solution on the Bridge. But if not, we will choose Latedays Machines.

Language

C/C++, CUDA

Schedule

Updated schedule:

Documents

Midterm Report: here.

Final Report: here

Final Demo Slides: here