Taking advantage of multi-core systems: A case study in the parallelization of an agent-based model of the Anopheles Gambiae Mosquito
From SwarmWiki
Gregory J. Davis, James E. Gentile, Gregory Madey
Department of Computer Science and Engineering University of Notre Dame Notre Dame, IN 46556
TITLE: Taking advantage of multi-core systems: A case study in the parallelization of an agent-based model of the Anopheles Gambiae Mosquito.
ABSTRACT: Malaria is an illness affecting approximately 500 million people worldwide and causing an estimated two million deaths each year. The pathogen responsible for malaria, a parasite of the genus Plasmodium, is transmitted when mosquitoes first take a blood meal from an infected human, and then subsequently take a blood meal from an uninfected human. In the past, efforts to control this disease have been successful by targeting interventions at mosquito populations. However, controlling mosquito populations in areas where malaria is highly endemic, such as sub‐Saharan Africa, requires smarter and sharper usages of these interventions. To assess the impact of various treatment approaches, we have developed an agent-based model of Anopheles Gambiae mosquitoes. To achieve biologically realistic simulations of mosquito populations, our model must be capable of handling a vast number of agents and tracking their interactions within complex environments. This level of specificity presents a computational challenge such that simulation run times increase non‐linearly as the population size increases. The present research investigates how parallelizing our simulation increases its performance. In particular, we investigated two common approaches to parallelization targeting efficient use of multi‐core systems (POSIX threads and OpenMP). We begin by presenting a simulation structure that is conducive to multi‐CPU shared memory parallelization. This architecture allows portions of the simulation to be subdivided based on the number of cores available. Additionally, this structure prevents the possibility of memory contingencies that can adversely affect parallel processes. Once the structure was implemented, we measured the performance of the simulation (in terms of memory and simulation execution time) when run within a single thread (serial updating) to the performance of a multithreaded simulation. As expected, the parallelized simulation always outperformed its serial counterpart. However, the OpenMP implementation offered less benefit when compared to POSIX thread implementations. The implications of our findings are discussed.
Back to Swarmfest2010_program
![[Main Page]](/stylesheets/images/wiki.png)