TM2C: a software transactional memory for many-cores

Transactional memory is an appealing paradigm for concurrent programming. Many software implementations of the paradigm were proposed in the last decades for both shared memory multi-core systems and clusters of distributed machines. However, chip manufacturers have started producing many-core architectures, with low network-on-chip communication latency and limited support for cache-coherence, rendering existing transactional memory implementations inapplicable. This paper presents TM2C, the first software Transactional Memory protocol for Many-Core systems. TM2C exploits network-on-chip communications to get granted accesses to shared data through efficient message passing. In particular, it allows visible read accesses and hence effective distributed contention management with eager conflict detection. We also propose FairCM, a companion contention manager that ensures starvation-freedom, which we believe is an important property in many-core systems, as well as an implementation of elastic transactions in these settings. Our evaluation on four benchmarks, i.e., a linked list and a hash table data structures as well as a bank and a MapReduce-like applications, indicates better scalability than locks and up to 20-fold speedup (relative to bare sequential code) when running 24 application cores.

[1]  Anoop Gupta,et al.  The directory-based cache coherence protocol for the DASH multiprocessor , 1990, ISCA '90.

[2]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[3]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[4]  Michael L. Scott,et al.  Software cache coherence for large scale multiprocessors , 1995, Proceedings of 1995 1st IEEE Symposium on High Performance Computer Architecture.

[5]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[6]  A. Schiper,et al.  Total order broadcast and multicast algorithms: Taxonomy and survey , 2003, CSUR.

[7]  William N. Scherer,et al.  Contention Management in Dynamic Software Transactional Memory ∗ , 2004 .

[8]  William N. Scherer,et al.  Advanced contention management for dynamic software transactional memory , 2005, PODC '05.

[9]  Rachid Guerraoui,et al.  Toward a theory of transactional contention managers , 2005, PODC '05.

[10]  Bratin Saha,et al.  McRT-STM: a high performance software transactional memory system for a multi-core runtime , 2006, PPoPP '06.

[11]  Milo M. K. Martin,et al.  Subtleties of transactional memory atomicity semantics , 2006, IEEE Computer Architecture Letters.

[12]  Madalin Mihailescu,et al.  Exploiting distributed version concurrency in a transactional memory cluster , 2006, PPoPP '06.

[13]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[14]  Maurice Herlihy,et al.  A flexible framework for implementing software transactional memory , 2006, OOPSLA '06.

[15]  Bratin Saha,et al.  Enabling scalability and performance in a large scale CMP environment , 2007, EuroSys '07.

[16]  Coniferous softwood GENERAL TERMS , 2003 .

[17]  Ye Sun,et al.  Distributed transactional memory for metric-space networks , 2005, Distributed Computing.

[18]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

[19]  Mikel Luján,et al.  DiSTM: A Software Transactional Memory Framework for Clusters , 2008, 2008 37th International Conference on Parallel Processing.

[20]  Torvald Riegel,et al.  Dynamic performance tuning of word-based software transactional memory , 2008, PPoPP.

[21]  Bradford L. Chamberlain,et al.  Software transactional memory for large scale clusters , 2008, PPoPP.

[22]  Paolo Romano,et al.  Towards distributed software transactional memory systems , 2008, LADIS '08.

[23]  Bo Zhang On the Design of Contention Managers and Cache-Coherence Protocols for Distributed Transactional Memory , 2009 .

[24]  Natalie D. Enright Jerger,et al.  Achieving predictable performance through better memory controller placement in many-core CMPs , 2009, ISCA '09.

[25]  Rachid Guerraoui,et al.  The semantics of progress in lock-based transactional memory , 2009, POPL '09.

[26]  Binoy Ravindran,et al.  Brief Announcement: Relay: A Cache-Coherence Protocol for Distributed Transactional Memory , 2009, OPODIS.

[27]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[28]  Luís E. T. Rodrigues,et al.  D2STM: Dependable Distributed Software Transactional Memory , 2009, 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing.

[29]  Saurabh Dighe,et al.  The 48-core SCC Processor: the Programmer's View , 2010, 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.

[30]  Timothy Mattson,et al.  A 48-Core IA-32 message-passing processor with DVFS in 45nm CMOS , 2010, 2010 IEEE International Solid-State Circuits Conference - (ISSCC).

[31]  Luís E. T. Rodrigues,et al.  Asynchronous Lease-Based Replication of Software Transactional Memory , 2010, Middleware.

[32]  Hagit Attiya,et al.  A Provably Starvation-Free Distributed Directory Protocol , 2010, SSS.

[33]  Luís E. T. Rodrigues,et al.  Cloud-TM: harnessing the cloud with distributed transactional memories , 2010, OPSR.

[34]  Christof Fetzer,et al.  Extensible transactional memory testbed , 2010, J. Parallel Distributed Comput..

[35]  Annette Bieniusa,et al.  Consistency in hindsight: A fully decentralized STM algorithm , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[36]  Mohamed M. Saad Supporting STM in Distributed Systems : Mechanisms and a Java Framework , 2011 .

[37]  Luís E. T. Rodrigues,et al.  SCert: Speculative certification in replicated software transactional memories , 2011, SYSTOR '11.

[38]  Binoy Ravindran,et al.  Snake: Control Flow Distributed Software Transactional Memory , 2011, SSS.

[39]  Binoy Ravindran,et al.  Transactional Forwarding: Supporting Highly-Concurrent STM in Asynchronous Distributed Systems , 2012, 2012 IEEE 24th International Symposium on Computer Architecture and High Performance Computing.