Improving GEMFsim: a stochastic simulator for the generalized epidemic modeling framework - Fan, Futing (Kansas State University, 2016)
The generalized epidemic modeling framework simulator (GEMFsim) is a tool designed by Dr. Faryad Sahneh, former PhD student in the NetSE group. GEMFsim simulates stochastic spreading process over complex networks. It was first introduced in Dr. Sahneh’s doctoral dissertation "Spreading processes over multilayer and interconnected networks" and implemented in Matlab. As limited by Matlab language, this implementation typically solves only small networks; the slow simulation speed is unable to generate enough results in reasonable time for large networks. As a generalized tool, this framework must be equipped to handle large networks and contain sufficient support to provide adequate performance. The C language, a low-level language that effectively maps a program to machine in- structions with efficient execution, was selected for this study. Following implementation of GEMFsim in C, I packed it into Python and R libraries, allowing users to enjoy the flexibility of these interpreted languages without sacrificing performance. GEMFsim limitations are not limited to language, however. In the original algorithm (Gillespie’s Direct Method), the performance (simulation speed) is inversely proportional to network size, resulting in unacceptable speed for very large networks. Therefore, this study applied the Next Reaction Method, making the performance irrelevant of network size. As long as the network fits into memory, the speed is proportional to the average node degree of the network, which is not very large for most real-world networks. This study also applied parallel computing in order to advantageously utilize multiple cores for repeated simulations. Although single simulation can not be paralleled as a Markov process, multiple simulations with identical network structures were run simultaneously, sharing one network description in memory.
Keywords: Network theory; Spreading processes; Multilayer networks; Interconnected networks; Epidemic modeling; Parallel Computing