Introduction:

Now days, computer are fast enough but the application that are developed are not exploiting the capabilities.
The reason behind this is that applications are developed to be executed serially. To truly consume the capabilities, applications need to be developed using parallel algorithms. Data parallel computing are now the most scalable solution (Boyd,2008)[1] . This parallelism is achieved by the use of General‐purpose computing on graphics processing units (GPGPU). The huge number of cores existing in current Graphics Processor Units (GPUs) provides these devices with computing capabilities that can be exploited by distributed applications. On June 25th, 2007, GPU vendors NVIDIA introduced programmability to distributed applications that can benefit from the capabilities of the GPUs known as CUDA (NVIDIA, 2007)[2] .

Crowd simulation is one of many examples of distributed applications. Regarding crowd simulations, some projects have been made for exploiting the capabilities of multicore architectures. Some work uses graphics hardware to simulate crowds of thousands individuals using models designed for gaseous phenomena (Courty, 2005)[3] . Recently, some authors have started to use GPU in an animation context (particle engine) (Kipfer, 2004)[4] .However, these projects are far from displaying complex behaviors at interactive rates. On the other hand, other projects including complex agent systems have been made, but they are not designed to provide the required scalability in number of agents.
OpeenSteeroid_Wordle.jpg
The image produced by Wordle, a word cloud generator.


In this project, we are determined to show that large scale multi‐agent systems can benefit from the use of parallel computing, i.e. by using not just distributed computing but a high degree of parallelism achieved using GPGPU and multi‐core technology. In order to achieve this goal, we will implement a distributed application for crowd simulations using one or more on‐board GPU. The huge number of cores in the GPU is used simultaneously which will greatly reduce the application’s response time. The use of GPU will significantly increases the parallelism achieved in comparison to the implementation of the same multi‐agent system using an application implemented on a CPU. We will also evaluate the performance, and the results form that evaluation will display the system’s throughput, supporting a significantly higher number of agents. Those results will be used for simulating crowds with a larger size.

Motivation and Need:


The motivation behind this project comes from the disasters which occur during heavily crowded or multi‐cultural events. In these the events, the main threat arise when a fire breaks out or due to other reasons, which induces panic in the crowd and where people are in danger of getting crushed to death. It is this panic or poor management, rather than the original threat, which often claims the vast majority of injuries and deaths (Flower, 2005)[5] . For example, on November 24th, 2010, 456 people died when a footbridge started swaying during the water festival in Phnom Penh, Cambodia. In this case, the high numbers of deaths were blamed on the bridge’s capacity, at the time of incident there were about 7,000 to 8,000 people that have been on the narrow bridge (Leithead, 2010)[6] .

Combodia.png
Person stuck under pile of dead bodies at the Phnom Penh Water Festival, Cambodia.

These unnecessary dangers could be better prevented if the creators of buildings and bridges and local authorities managing the events could test their designs and their crowd controlling plans under various emergency situations. To hire a crowd for this purpose would not only be expensive, but dangerous. Therefore, a computer simulation of a realistic crowd, where the designer can test different parameters and situations (e.g. placing emergency exists, adding or removing walls etc.), would enable the creation of crowd-safe events (Still, 2000)[7] .

Apart from the safety aspect, a realistic crowd simulation could be useful in areas such as computer games, virtual reality simulations, urban planning etc.

OpenSteer:

OpenSteer Pedestrian plugin snapshot.

Capture-_pedestrain.PNG


Hardware Details:

GF104 processor block diagram. It is based on the new Fermi architecture.

NVIDIA-GF104-Fermi-Graphics-Processor-Block-Diagram.png

For more details about the GF104 and 460gtx visit this link

Current Activities:

OpenSteer(oid) and GPUX.
Subject Author Replies Views Last Message
Code efficiency in CUDA in contrast to Thrust arahman.ned arahman.ned 0 110 Mar 20, 2011 by arahman.ned arahman.ned


Resources

Project Poster:


poster_final.jpg


Citations:


  1. ^ Boyd, C. (2008, March 28). Data-Parallel Computing. ACM queue, pp. 30-39.pdf
  2. ^ NVIDIA. (2007, June 25). NVIDIA CUDA Toolkit and SDK Release 1.0 Now Available. Retrieved January 22, 2011, from NVIDIA Developer Zone: News
  3. ^ Courty, N. (2005). Simulation of large crowds in emergency situations including gaseous phenomena. CGI '05 Proceedings of the Computer Graphics International 2005 (pp. 206-212). Washington: IEEE Computer Society Washington.pdf
  4. ^ Kipfer, P. (2004). UberFlow: a GPU-based particle engine. HWWS '04 Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware (pp. 115 - 122). New York: ACM New York. pdf
  5. ^ Flower, D. (2005). Crowd Simulation for Emergency Response Planning. Auckland. pdf
  6. ^ Leithead, A. (2010, November 24). Swaying footbridge 'triggered deadly Cambodia stampede'. Retrieved January 22, 2011, from BBC News: News
  7. ^ Still, P. Keith (2000, August). Chapter 4, Principles of a Simulation. Retrieved January 22, 2011, from Gkstill.com: link.