Affiliation:
1. Barcelona Supercomputing Center, Barcelona, Spain
2. Microsoft Research, Cambridge, England UK
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
25 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. When Is Parallelism Fearless and Zero-Cost with Rust?;Proceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures;2024-06-17
2. Pagoda: Towards Binary Code Privacy Protection with SGX-based Execute-Only Memory;2022 IEEE International Symposium on Secure and Private Execution Environment Design (SEED);2022-09
3. Understanding Flash-Based Storage I/O Behavior of Games;2021 IEEE 14th International Conference on Cloud Computing (CLOUD);2021-09
4. Mimosa: Protecting Private Keys Against Memory Disclosure Attacks Using Hardware Transactional Memory;IEEE Transactions on Dependable and Secure Computing;2021-05-01
5. OpenUVR: an Open-Source System Framework for Untethered Virtual Reality Applications;2021 IEEE 27th Real-Time and Embedded Technology and Applications Symposium (RTAS);2021-05