Main Page | Recent changes | View source | Page history

Printable version | All content dual-licensed under the GNU FDL and the Creative Commons Share-alike Attribution license. | Privacy policy

Not logged in
Log in | Help
 

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]
Main page
About SwarmWiki
News
Recent changes
Random page
Help

View source
Discuss this page
Page history
What links here
Related changes

Special pages