Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1755913.1755919acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

Transactional memory support for scalable and transparent parallelization of multiplayer games

Published: 13 April 2010 Publication History

Abstract

In this paper, we study parallelization of multiplayer games using software Transactional Memory (STM) support. We show that the STM provides not only ease of programming, but also better performance than that achievable with state-of-the-art lock-based programming, for this realistic high impact application.
For this purpose, we use a game benchmark, SynQuake, that extracts the main data structures and the essential features of the popular game Quake. SynQuake can be driven with a synthetic workload generator that flexibly emulates client game actions and various hot-spot scenarios in the game world. We implement, evaluate and compare the STM version of SynQuake with a state-of-the-art lock-based parallelization of Quake, which we ported to SynQuake. While in STM-SynQuake support for maintaining the consistency of each complex game action is automatic, conservative locking of surrounding objects within a bounding box, for the duration of the game action is inherently needed in lock-based SynQuake. This leads to higher scalability of STM-SynQuake versus lock-based SynQuake, due to a higher degree of false sharing in the latter. Task assignment to threads has a second-order effect on the scalability of STM-SynQuake, due to its impact on the application's true sharing patterns. We show that a dynamic locality-aware task assignment to threads provides the best trade-off between load balancing and conflict reduction.

References

[1]
A. Abdelkhalek and A. Bilas. Parallelization and performance of interactive multiplayer game servers. Parallel and Distributed Processing Symposium, International, 1:72a, 2004.
[2]
A. Abdelkhalek, A. Bilas, and A. Moshovos. Behavior and performance of interactive multi-player game servers. In Cluster Computing, 2001.
[3]
J. Chen, B. Wu, M. Delap, B. Knutsson, H. Lu, and C. Amza. Locality aware dynamic load management for massively multiplayer games. In PPoPP, pages 289--300, June 2005.
[4]
E. Cronin, A. R. Kurc, B. Filstrup, and S. Jamin. An efficient synchronization mechanism for mirrored game architectures. Multimedia Tools and Applications, 23(1):7--30, 2004.
[5]
D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), September 2006.
[6]
D. Dice and N. Shavit. Understanding tradeoffs in software transactional memory. In Proceedings of the 2007 International Symposium on Code Generation and Optimization (CGO), pages 21--33, March 2007.
[7]
A. Dragojevic, R. Guerraoui, and M. Kapalka. Dividing transactional memories by zero. TRANSACT, 2008.
[8]
A. Dragojevic, R. Guerraoui, and M. Kapalka. Stretching transactional memory. In Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 155--165, 2009.
[9]
P. Felber, C. Fetzer, and T. Riegel. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), pages 237--246, 2008.
[10]
V. Gajinov, F. Zyulkyarov, O. S. Unsal, A. Cristal, E. Ayguade, T. Harris, and M. Valero. Quaketm: parallelizing a complex sequential application using transactional memory. In ICS '09: Proceedings of the 23rd international conference on Supercomputing, pages 126--135, New York, NY, USA, 2009. ACM.
[11]
Intel Corporation. Intel C++ STM Compiler Prototype Edition 2.0 Language Extenstions and User Guide. 2008.
[12]
S. Kang and D. A. Bader. An efficient transactional memory algorithm for computing minimum spanning forest of sparse graphs. ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), 44(4):15--24, 2009.
[13]
M. Kulkarni, K. Pingali, and L. P. Chew. Using transactions in delaunay mesh generation. 2006.
[14]
D. Lupei, A. Czajkowski, C. Segulja,M. Stumm, and C. Amza. Automatic adaptation of transactional memory state management to application conflict patterns. In The 13th Workshop on the Interaction between Compilers and Computer Architectures 2009 (Interact 2009), pages 47--56, February 2009.
[15]
V.J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N. Scherer III, and M. L. Scott. Lowering the overhead of nonblocking software transactional memory. In Proceedings of the 1st ACM SIGPLAN Workshop on Languages, Compilers and Hardware Support for Transactional Computing (TRANSACT), June 2006.
[16]
B. Ng, A. Si, R. W.H. Lau, and F. W.B. Li. A multi-server architecture for distributed virtual walkthrough. In VRST '02: Proceedings of the ACM symposium on Virtual reality software and technology, pages 163--170, 2002.
[17]
Y. Ni, A. Welc, A-R Adl-Tabatabai, M. Bach, S. Berkowits, J. Cownie, R. Geva, S. Kozhukow, R. Narayanaswamy, J. Olivier, S. Preis, B. Saha, A. Tal, and X. Tian. Design and implementation of transactional constructs for c/c++. In OOPSLA '08: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, pages 195--212, New York, NY, USA, 2008. ACM.
[18]
T. Riegel, P. Felber, and C. Fetzer. A lazy snapshot algorithm with eager validation. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), pages 284--298, September 2006.
[19]
T. Riegel, C. Fetzer, and P. Felber. Time-based transactional memory with scalable time bases. In Proceedings of the 19th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 221--228, 2007.
[20]
B. Saha, A.-R. Adl-Tabatabai, R. L. Hudson, C. C. Minh, and B. Hertzberg. Mcrtstm: a high performance software transactional memory system for a multi-core runtime. In Proceedings of the 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), pages 187--197, March 2006.
[21]
M. L. Scott,M. F. Spear, L. Dalessandro, and V. J.Marathe. Delaunay triangulation with transactions and barriers. In IISWC '07: Proceedings of the 2007 IEEE 10th International Symposium on Workload Characterization, pages 107--113, Washington, DC, USA, 2007. IEEE Computer Society.
[22]
M. F. Spear, V. J.Marathe,W. N. Scherer III, and M. L. Scott. Conflict detection and validation strategies for software transactional memory. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), September 2006.
[23]
F. Zyulkyarov, V. Gajinov, O. S. Unsal, A. Cristal, E. Ayguade, T. Harris, and M. Valero. Atomic quake: using transactional memory in an interactive multiplayer game server. In PPOPP, pages 25--34. ACM, 2009.

Cited By

View all
  • (2024)When Is Parallelism Fearless and Zero-Cost with Rust?Proceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3626183.3659966(27-40)Online publication date: 17-Jun-2024
  • (2020)BlackMirror: Preventing Wallhacks in 3D Online FPS GamesProceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security10.1145/3372297.3417890(987-1000)Online publication date: 30-Oct-2020
  • (2017)POSTERACM SIGPLAN Notices10.1145/3155284.301902752:8(433-434)Online publication date: 26-Jan-2017
  • Show More Cited By

Recommendations

Reviews

Jingping Long

One of the most difficult parts of multi-threaded programming is handling conflicting requests from different sources (such as different players in a multi-player game) to maintain data consistency, while not penalizing performance harshly. The most popular way to solve this type of conflict in multi-threaded programming is based on locks-a thread must first obtain an atomic object (the lock) before it can operate on potentially shared data items. The main drawbacks of this approach include programming complexity (the programmer has to know when to lock) and performance issues (the programmer has to assume the worst-case scenario, so locks are often used excessively). Lupei et al. replace the lock-based method with software transactional memory (STM) support in a popular multi-player game, to study the benefits of STM. The basic idea of STM is to first record the intentions of all the threads and then make permanent changes after such intentions are verified as legitimate (no consistency is violated, as we do transactions in our banks). In addition to using STM, the authors also apply dynamic load balancing (in assigning tasks to threads) with data locality awareness. The study finds that STM performs better than the lock-based implementation when the game is run on four and eight threads. The work is valuable in the sense that it provides realistic data to support what has been advocated: STM not only eases the parallelization effort, but also implies better performance. The paper would have been even more valuable if it had studied runs with more threads (16, 32, and so on), as multicore chips have gained popularity. Also, it would have been nice if the paper had elaborated on why the lock-based implementation in the game is state of the art. This would make the paper's claim of better performance more convincing. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
EuroSys '10: Proceedings of the 5th European conference on Computer systems
April 2010
388 pages
ISBN:9781605585772
DOI:10.1145/1755913
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 April 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. load balancing
  2. massively multiplayer games
  3. scalability
  4. software transactional memory
  5. synchronization

Qualifiers

  • Research-article

Conference

EuroSys '10
Sponsor:
EuroSys '10: Fifth EuroSys Conference 2010
April 13 - 16, 2010
Paris, France

Acceptance Rates

Overall Acceptance Rate 241 of 1,308 submissions, 18%

Upcoming Conference

EuroSys '25
Twentieth European Conference on Computer Systems
March 30 - April 3, 2025
Rotterdam , Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)When Is Parallelism Fearless and Zero-Cost with Rust?Proceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3626183.3659966(27-40)Online publication date: 17-Jun-2024
  • (2020)BlackMirror: Preventing Wallhacks in 3D Online FPS GamesProceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security10.1145/3372297.3417890(987-1000)Online publication date: 30-Oct-2020
  • (2017)POSTERACM SIGPLAN Notices10.1145/3155284.301902752:8(433-434)Online publication date: 26-Jan-2017
  • (2017)SeerACM Transactions on Computer Systems10.1145/313203635:3(1-41)Online publication date: 14-Nov-2017
  • (2017)POSTERProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3019027(433-434)Online publication date: 26-Jan-2017
  • (2016)ProteusTMACM SIGARCH Computer Architecture News10.1145/2980024.287238544:2(757-771)Online publication date: 25-Mar-2016
  • (2016)ProteusTMACM SIGOPS Operating Systems Review10.1145/2954680.287238550:2(757-771)Online publication date: 25-Mar-2016
  • (2016)ProteusTMACM SIGPLAN Notices10.1145/2954679.287238551:4(757-771)Online publication date: 25-Mar-2016
  • (2016)ProteusTMProceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/2872362.2872385(757-771)Online publication date: 25-Mar-2016
  • (2016)Transactional Memory for Algebraic Multigrid SmoothersOpenMP: Memory, Devices, and Tasks10.1007/978-3-319-45550-1_23(320-335)Online publication date: 21-Sep-2016
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media