ABSTRACT
Transactional Memory (TM) is considered as one of the most promising paradigms for developing concurrent applications. TM has been shown to scale well on >multiple cores when the data access pattern behaves "well," i.e., when few conflicts are induced. In contrast, data patterns with frequent write sharing, with long transactions, or when many threads contend for a smaller number of cores, result in numerous conflicts. Until recently, TM implementations had little control of transactional threads, which remained under the supervision of the kernel's transaction-ignorant scheduler. Conflicts are thus traditionally resolved by consulting an STM-level contention manager. Consequently, the contention managers of these "conventional" TM implementations suffer from a lack of precision and often fail to ensure reasonable performance in high-contention workloads.
Recently, scheduling-based TM contention-management has been proposed for increasing TM efficiency under high-contention [2, 5, 19]. However, only user-level schedulers have been considered. In this work, we propose, implement and evaluate several novel kernel-level scheduling support mechanisms for TM contention management. We also investigate different strategies for efficient communication between the kernel and the user-level TM library. To the best of our knowledge, our work is the first to investigate kernel-level support for TM contention management.
We have introduced kernel-level TM scheduling support into both the Linux and Solaris kernels. Our experimental evaluation demonstrates that lightweight kernel-level scheduling support significantly reduces the number of aborts while improving transaction throughput on various workloads.
- Ali-Reza Adl-Tabatabai, Christos Kozyrakis, and Bratin Saha. Unlocking concurrency. Queue, 4(10):24--33, 2007. Google Scholar
Digital Library
- Mohammad Ansari, Mikel Luján, Christos Kotselidis, Kim Jarvis, Chris C. Kirkham, and Ian Watson. Steal-on-abort: Improving transactional memory performance through dynamic transaction reordering. In High Performance Embedded Architectures and Compilers, Fourth International Conference (HiPEAC), pages 4--18, 2009. Google Scholar
Digital Library
- Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. STAMP: Stanford transactional applications for multi-processing. In Proceedings of IISWC, September 2008.Google Scholar
- David Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In 20th International Symposium on Distributed Computing (DISC), pages 194--208, September 2006. Google Scholar
Digital Library
- Shlomi Dolev, Danny Hendler, and Adi Suissa. CAR-STM: scheduling-based collision avoidance and resolution for software transactional memory. In Twenty-Seventh Annual ACM Symposium on Principles of Distributed Computing (PODC), pages 125--134, August 2008. Google Scholar
Digital Library
- Aleksandar Dragojevic, Rachid Guerraoui, Anmol V. Singh, and Vasu Singh. Preventing versus curing: Avoiding conflicts in transactional memories. In Twenty-Eighth Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), pages 7--16, August 2009. Google Scholar
Digital Library
- Robert Ennals. Software transactional memory should not be obstruction--free. Technical report, Intel Research Cambridge, 2006. IRC--TR--06--052.Google Scholar
- Pascal Felber, Christof Fetzer, and Torvald Riegel. Dynamic performance tuning of word--based software transactional memory. In Proceedings of PPoPP, pages 237---246, February 2008. Google Scholar
Digital Library
- Rachid Guerraoui, Michał Kapałka, and Jan Vitek. STMBench7: A benchmark for software transactional memory. In Proceedings of the Second European Systems Conference EuroSys 2007, pages 315---324. ACM, March 2007. Google Scholar
Digital Library
- Maurice Herlihy, Victor Luchangco, Mark Moir, and William N. Scherer III. Software transactional memory for dynamic--sized data structures. In Twenty--Second ACM Symposium on Principles of Distributed Computing (PODC), pages 92---101, July 2003. Google Scholar
Digital Library
- Maurice Herlihy and J. Eliot B. Moss. Transactional memory: Architectural support for lock-free data structures. In 20th Annual International Symposium on Computer Architecture (ICSA), pages 289--300, May 1993. Google Scholar
Digital Library
- James Larus and Christos Kozyrakis. Transactional memory. Communication of the ACM, 51(7):80--88, July 2008. Google Scholar
Digital Library
- Christopher J. Rossbach, Owen S. Hofmann, Donald E. Porter, Hany E. Ramadan, Aditya Bhandari, and Emmett Witchel. TxLinux: Using and managing hardware transactional memory in an operating system. In Proceedings of SOSP, pages 87--102, October 2007. Google Scholar
Digital Library
- Bratin Saha, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In Proceedings of PPoPP, pages 187--197, March 2006. Google Scholar
Digital Library
- William N. Scherer III and Michael L. Scott. Contention management in dynamic software transactional memory. In Proceedings of the PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004. Google Scholar
Digital Library
- William N. Scherer III and Michael L. Scott. Advanced contention management for dynamic software transactional memory. In Proceedings of PODC, pages 240--248, July 2005. Google Scholar
Digital Library
- Nir Shavit and Dan Touitou. Software transactional memory. In Proceedings of PODC, pages 204--213, August 1995. Google Scholar
Digital Library
- Nir Shavit and Dan Touitou. Software transactional memory. Distributed Computing, 10(2):99--116, 1997.Google Scholar
Cross Ref
- Richard M. Yoo and Hsien-Hsin S. Lee. Adaptive transaction scheduling for transactional memory systems. In Proceedings of SPAA, pages 169--178, June 2008. Google Scholar
Digital Library
Index Terms
Scheduling support for transactional memory contention management
Recommendations
Scheduling support for transactional memory contention management
PPoPP '10Transactional Memory (TM) is considered as one of the most promising paradigms for developing concurrent applications. TM has been shown to scale well on >multiple cores when the data access pattern behaves "well," i.e., when few conflicts are induced. ...
Mileage-based contention management in transactional memory
PACT '12: Proceedings of the 21st international conference on Parallel architectures and compilation techniquesIn Transactional Memory (TM), a conflict occurs when a memory block is accessed concurrently by two or more transactions and at least one of them is a write access. The management of conflicts significantly impacts TM performance. There are two ...
Conflict Avoidance Scheduling Using Grouping List for Transactional Memory
IPDPSW '12: Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD ForumConventional Transactional Memory (TM) systems may experience performance degradation in applications with high contention, given the fact that execution of transaction will frequently restart due to conflicts. The restarting of transaction essentially ...







Comments