ACM Home Page
Please provide us with feedback. Feedback
Atomic quake: using transactional memory in an interactive multiplayer game server
Full text PdfPdf (423 KB)
Source
Principles and Practice of Parallel Programming archive
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming table of contents
Raleigh, NC, USA
SESSION: Parallel applications table of contents
Pages 25-34  
Year of Publication: 2009
ISBN:978-1-60558-397-6
Also published in ...
Authors
Ferad Zyulkyarov  Barcelona Supercomputing Center, Barcelona, Spain
Vladimir Gajinov  Barcelona Supercomputing Center, Barcelona, Spain
Osman S. Unsal  Barcelona Supercomputing Center, Barcelona, Spain
Adrián Cristal  Barcelona Supercomputing Center, Barcelona, Spain
Eduard Ayguadé  Barcelona Supercomputing Center, Barcelona, Spain
Tim Harris  Microsoft Research, Cambridge, England UK
Mateo Valero  Barcelona Supercomputing Center, Barcelona, Spain
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 24,   Downloads (12 Months): 185,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1504176.1504183
What is a DOI?

ABSTRACT

Transactional Memory (TM) is being studied widely as a new technique for synchronizing concurrent accesses to shared memory data structures for use in multi-core systems. Much of the initial work on TM has been evaluated using microbenchmarks and application kernels; it is not clear whether conclusions drawn from these workloads will apply to larger systems. In this work we make the first attempt to develop a large, complex, application that uses TM for all of its synchronization. We describe how we have taken an existing parallel implementation of the Quake game server and restructured it to use transactions. In doing so we have encountered examples where transactions simplify the structure of the program. We have also encountered cases where using transactions occludes the structure of the existing code. Compared with existing TM benchmarks, our workload exhibits non-block-structured transactions within which there are I/Ooperations and system call invocations. There are long and short running transactions (200-1.3M cycles) with small and large read and write sets (a few bytes to 1.5MB). There are nested transactions reaching up to 9 levels at runtime. There are examples where error handling and recovery occurs inside transactions. There are also examples where data changes between being accessed transactionally and accessed non-transactionally. However, we did not see examples where the kind of access to one piece of data depended on the value of another.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
A. Abdelkhalek and A. Bilas. Parallelization and performance of interactive multiplayer game servers. In IPDPS '04: Proc. 18th international parallel and distributed processing symposium, pages 72--81, Apr. 2004.
3
4
 
5
C. Blundell, E. C. Lewis, and M. M. K. Martin. Deconstructing transactional semantics: The subtleties of atomicity. In WDDD '05: Proc. 4th workshop on duplicating, deconstructing and debunking, pages 48--55, June 2005.
 
6
C. Blundell, E. C. Lewis, and M. M. K. Martin. Unrestricted transactional memory: Supporting I/O and system calls within transactions. Technical Report TR-CIS-06-09, University of Pennsylvania, Department of Computer and Information Science, May 2006.
 
7
C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC '08: Proc. 11th IEEE International Symposium on Workload Characterization, September 2008.
8
9
10
 
11
D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC '06: Proc. 20th international symposium on distributed computing, pages 194--208, Sept. 2006.
12
 
13
D. Harmanci, P. Felber, M. Sukraut, and C. Fetzer. TMunit: A transactional memory unit testing and workload generation tool. Technical Report RR-I-08-08.1, Université de Neuchâtel, Institut d'Informatique, Aug. 2008.
14
15
16
17
18
 
19
ID Software. Quake. http://www.idsoftware.com/games/quake/quake.
 
20
Intel Corporation. Intel C++ STM Compiler Prototype Edition 2.0 Language Extensions and User's Guide, Mar. 2008. http://softwarecommunity.intel.com/isn/Downloads/whatif/stm/Intel-C-STM-Language-Extensions-Users-Guide-V2_0.pdf.
 
21
 
22
23
24
25
26
27
28
29
30
31
 
32
 
33
34
35
 
36
F. Zyulkyarov, S. Cvijic, O. Unsal, A. Cristal, E. Ayguade, T. Harris, and M. Valero. WormBench: A configurable workload for evaluating transactional memory systems. In MEDEA '08: Proc. 2008 workshop on memory performance: dealing with applications, systems and architecture, Oct. 2008.


Collaborative Colleagues:
Ferad Zyulkyarov: colleagues
Vladimir Gajinov: colleagues
Osman S. Unsal: colleagues
Adrián Cristal: colleagues
Eduard Ayguadé: colleagues
Tim Harris: colleagues
Mateo Valero: colleagues