Applying Graphics Processing Unit Technologies to Agent-Based Simulation

Applying Graphics Processing Unit Technologies to Agent-Based Simulation

Mitchell Welch (School of Science and Technology, University of New England, Australia) and Paul Kwan (School of Science and Technology, University of New England, Australia)
Copyright: © 2015 |Pages: 12
DOI: 10.4018/978-1-4666-5888-2.ch117

Chapter Preview



In recent years, agent-based modelling has emerged as a successful approach for simulating complex systems across numerous domains, and for a wide range of purposes including social science, ecology, biology and epidemiology(Berger, 2001; Busing & Mailly, 2004; Connell, Dawson, & Skvortsov, 2009; D'Souza, Marino, & Kirschner, 2009; Elliston & Beare, 2006; Funk, Gerber, Lind, & Schillo, 1998; Minar, Burkhart, Langton, & Askenazi, 1996; Schelhorn, O'Sullivan, Haklay, & Thurstain-Goodwin, 1999). Agent-based models are developed around the principle of conceptually breaking complex systems down into individual components referred to as Agents. These components can theoretically represent any arbitrary level of detail within the system and have their own simulated behaviour and state. This system of interacting agents can be used to model complex phenomena from the bottom-up, allowing scientists to develop rich simulations capable of supporting experimentation at different conceptual levels within the system. The capability that this modelling approach provided has led to the use of Agent-Based Models (ABM) in a decision-support role for governments and industries, and fostered a demand for modelling systems with increasing levels of detail within the individual agents and their interactions, which in turn provides an even greater scope for experimentation. In addition to this, ABMs are being applied to larger scale systems, modelling more complex phenomena as data become more readily available at higher levels of detail.

The broadening in scope, coupled with the requirements for higher levels of detail, have driven an increase in the computational requirements of agent-based simulations, both in terms of memory and processor clock cycles. This is mainly due to the autonomous nature of the individual agents within the simulation, the state information they contain, and the interactions that occur between them. In simple terms, as the complexity of each individual agent’s processing and/or the number of agents appearing in a simulation increases, the number of computational operations performed in each iteration of the simulation also increases. This challenge is further compounded by the requirement for interactions between the agents in order to simulate the phenomena. Likewise, a simulation’s memory requirements also grow as the amount of state information stored within each agent and the number of agents increase.

Graphics Processing Unit(GPU) technologies, originally designed for carrying out the arithmetic processing required to produce complex three-dimensional graphics, have emerged as a high performing platform that is suitable for many general-purpose processing tasks. The development of technologies such as Nvidia’s Compute Unified Device Architecture (CUDA)(NVIDIA, 2010) and OpenCL(AMD, 2010) provide the much needed frameworks for harnessing GPU’s general-purpose processing capability, using a client-server architecture. The GPU programming approach has been successfully applied to large-scale agent-based modelling systems, resulting in promising performance gains and enhanced modelling capabilities. This chapter summarises the agent-based simulation approach, highlights the issues and challenges in applying GPU technologies to agent-based simulations, and reviews several real world implementations that have made use of the GPU technologies. The chapter concludes with a discussion of the performance gains witnessed in the implementations reviewed, and briefly explains their approaches in dealing with the implementation challenges.

The rest of this chapter will be organised as follow. The second section provides a background of the agent-based modelling approach and an overview of current GPU technologies. The third section reviews a selection of recent real-world implementations of agent-based modelling systems that has utilised the GPU technologies. The final three sections discuss the potential performance gains in applying the GPU technologies, future developments, and present the concluding remarks for the chapter.

Key Terms in this Chapter

Emergence: Trends and behaviours exhibited by a system (such as an agent-based simulation) that are a result of the outputs from that system’s sub-systems.

Compute Unified Device Architecture (CUDA): Nvidia corporation’s platform for providing general-purpose programming capabilities on its range of CUDA enabled graphics cards.

Graphics Processing Unit (GPU): A computer processor that has been specially designed for carrying out the computational tasks required for producing complex three-dimensional graphics on computer systems. GPUs are generally found on graphics cards within computer systems.

Parallel Processing: Executing multiple instructions within a computer program simultaneously across multiple processing units on one or more physical devices (i.e. CPU or GPU cores).

General Purpose Processing on the Graphics Processing Unit (GPGPU): The use of general purpose graphics programming libraries (such as OpenGL and Direct3D), that are normally used for producing three-dimensional graphics on a graphics card, for general-purpose processing tasks.

Runtime: The period of time in which a program is executing instructions in the processor.

Agent: An individually identifiable component within a system that has its own state, behaviour and is able to interact with other agents.

Agent-Based Model (ABM): A simulation paradigm for modelling complex phenomena that makes use of one or more agents. ABMs simulate phenomena using a bottom-up approach, through emergent behaviour exhibited by the individual agents. This emergent behaviour simulates the overall phenomena.

Complete Chapter List

Search this Book: