A Read-Copy Update based parallel server for distributed crowd simulations
The Read-Copy Update (RCU) synchronization method was designed to cope with multiprocessor scalability some years ago, and it was included in the Linux kernel October of 2002. Recently, libraries providing user-space access to this method have been released, although they still have not been used in complex applications.
In this paper, we propose the evaluation of the RCU synchronization method for two different cases of use in a distributed system architecture for crowd simulations. We have compared the RCU implementation with a parallel implementation based on Mutex, a traditional locking synchronization method for solving race conditions among threads in parallel applications. The performance evaluation results show that the use of RCU significantly decreases the system response time and increases the system throughput, supporting a higher number of agents while providing the same latency levels. The reason for this behavior is that the RCU method allows read accesses in parallel with write accesses to dynamic data structures, avoiding the sequential access that a Mutex represents for these data structures. In this way, it can better exploit the existing number of processor cores. These results show the potential of this synchronization method for improving parallel and distributed applications.
KeywordsRead-copy update synchronization method Crowd simulations
- 3.Duato J, Yalamanchili S, Ni L (1997) Interconnection networks: an engineering approach. IEEE Computer Society Press, New York Google Scholar
- 5.Hart TE, McKenney PE, Brown AD (2006) Making lockless synchronization fast: performance implications of memory reclamation. In: 20th IEEE international parallel and distributed processing symposium, Rhodes, Greece Google Scholar
- 6.Henderson T, Bhatti S (2003) Networked games: a QoS-sensitive application for QoS-insensitive user? In: Proceedings of the ACM SIGCOMM 2003. ACM Press/ACM SIGCOMM, New York, pp 141–147 Google Scholar
- 8.McKenney PE, Slingwine JD (1998) Read-copy update: using execution history to solve concurrency problems. In: Parallel and distributed computing and systems, Las Vegas, NV, pp 509–518 Google Scholar
- 10.París DL, Brazalez A (2009) A new autonomous agent approach for the simulation of pedestrians in urban environments. Integr Comput-Aided Eng 16(4):283–297 Google Scholar
- 12.Shendarkar A, Vasudevan K, Lee S, Son YJ (2006) Crowd simulation for emergency response using BDI agent based on virtual reality. In: WSC ’06: proceedings of the 38th conference on winter simulation, pp 545–553 Google Scholar
- 17.Zyulkyarov F, Gajinov V, Unsal OS, Cristal A, Ayguadé E, Harris T, Valero M (2009) Atomic quake: using transactional memory in an interactive multiplayer game server. In: Proceedings of the 14th ACM SIGPLAN symposium on principles and practice of parallel programming, PPoPP ’09. ACM, New York, pp 25–34 Google Scholar