Giter VIP home page Giter VIP logo

tm2c-threads's Introduction

TM2C is the most portable software transactional memory (STM) to date. TM2C is distributed: its design is fully decentralized and builds on top of message passing. Nevertheless, TM2C targets large-scale many-cores, not distributed systems. Although decentralized (and therefore highly scalable), TM2C guarantees the termination of every transaction, unlike other distributed STMs.

TM2C was ported to pthreads by David Cervini <[email protected]> in a semester project supervised by Vasileios Trigonakis <[email protected]>.


* Website             : http://lpd.epfl.ch/site/tm2c
* Author              : Vasileios Trigonakis <[email protected]>
* Related Publications: TM2C is now a part of the SSYNC synchronization suite (http://lpd.epfl.ch/site/ssync)
  1. TM2C: a Software Transactional Memory for Many-Cores, 
     Vincent Gramoli, Rachid Guerraoui, Vasileios Trigonakis (alphabetical order), 
     EuroSys '12 - Proceedings of the 7th ACM European conference on Computer Systems
  2. Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask, 
     Tudor David, Rachid Guerraoui, Vasileios Trigonakis (alphabetical order), 
     SOSP '13 - Proceeding of the 24th ACM Symposium on Operating Systems Principles


Installation:
-------------

Please refer to the INSTALL file.


Details:
--------

TM2C brings the client-server design to STMs. The STM is actually provided as a service (by what we 
call the service threads) to the application threads. Consequently, a transactional request in
TM2C happens over message passing. 

The distributed service (DSL) is able to perform normal contention management upon a conflict, similar
to centralized STMs. However, each DSL thread is able to take its decisions locally, without the need
to utilize any global data or to communicate with other DSL threads. This decentralization is
important for the scalability of the system on large scale processors. TM2C comes with three contention
managers:
	* Offset-Greedy: uses timestamps as criteria. Older transaction have priority over newer.
	  		 Offset-Greedy is a decentralized implementation of Greedy.
	* Wholly: uses the number of committed transactions as the criterion. The threads with fewer
	  	  committed transactions have priority.
	* FairCM: uses the effective transactional time of each thread as the criterion. This 
	  	  corresponds to the time a thread has spent on successful transactions. The thread
		  with the lower time has priority over the others.


Limitations:
------------

The current implementation of TM2C bundles the DSL service with the application, i.e., they are both
initialized together. In other words, it is currently not possible to initiate the DSL service and 
let an application start later. Ideally, we would like to allow the application contact the DSL
service and then be able to utilize it. 

tm2c-threads's People

Contributors

trigonak avatar knl avatar

Watchers

James Cloos avatar Tudor David avatar  avatar Athanasios Xygkis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.