Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
elastic [2010/12/10 10:23] transactions |
elastic [2010/12/10 10:40] transactions [ε-STM] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === ε-STM === | + | ===== Elastic Transactions ===== |
- | ε-STM is the first software transactional memory supporting elastic transactions. Elastic transactions are a variant of the transactional model. Upon conflict detection, an elastic transaction might drop what it did so far within a separate transaction that immediately commits, and initiate a new transaction which might itself be elastic. | + | |
- | Elastic transactions are a complementary alternative to traditional transactions, particularly appealing when implementing search structures. Both forms of transactions can safely be combined within the same application. ε-STM implementation is faster than a state-of-the-art software transactional memory in various workloads and with a speedup of 36% on average. It also presents a speedup over lock-based solutions of 89% on average. | + | //Elastic Transactions// are a complementary alternative to traditional transactions, particularly appealing when implementing search structures. Both forms of transactions can safely be combined within the same application. Elastic transactions are a variant of the transactional model. Upon conflict detection, an elastic transaction might drop what it did so far within a separate transaction that immediately commits, and initiate a new transaction which might itself be elastic. |
- | The figure on the right-hand side shows that ε-STM multiplies regular STM peak performance by a factor of 4 on an 8-core machine for searching and modifying a 216-sized linked list, but, more importantly, tolerates contention. Indeed it scales better as the ratio of updating transactions grows and the level of parallelism grows. | + | |
+ | ==== ε-STM ==== | ||
+ | ε-STM is the first software transactional memory supporting elastic transactions. | ||
+ | ε-STM implementation is faster than a state-of-the-art software transactional memory in various workloads and with a speedup of 36% on average. | ||
Here is the simple API, ε-STM provides to the user: | Here is the simple API, ε-STM provides to the user: | ||
Line 15: | Line 17: | ||
The simplicity of using ε-STM comes from the very few information the programmer has to provide. The programmer has to indicate whether his(her) transaction is normal or elastic and no extra-information (i.e., release action, or on-abort-action) is necessary. | The simplicity of using ε-STM comes from the very few information the programmer has to provide. The programmer has to indicate whether his(her) transaction is normal or elastic and no extra-information (i.e., release action, or on-abort-action) is necessary. | ||
- | === Related Publications === | + | ε-STM is created/maintained by [[http://lpd.epfl.ch/gramoli|Vincent Gramoli]]. |
+ | |||
+ | ==== C Release ==== | ||
+ | |||
+ | Here is our word-based version of ε-STM, implemented in C. | ||
+ | |||
+ | * [[http://lpd.epfl.ch/gramoli/doc/sw/estm-0.2.7.tgz|estm-0.2.7]]. | ||
+ | |||
+ | ==== Java Release ==== | ||
+ | |||
+ | Here is our field-based version of ε-STM, implemented in Java. It requires the Deuce instrumentation framework. | ||
+ | |||
+ | * [[http://lpd.epfl.ch/gramoli/doc/sw/estm-java-0.2.tgz|estm-java-0.2]]. | ||
+ | |||
+ | |||
+ | ==== Related Publications ==== | ||
Felber, P., Gramoli, V., Guerraoui, R. (2009) | Felber, P., Gramoli, V., Guerraoui, R. (2009) | ||
[[http://infoscience.epfl.ch/record/140819|Elastic Transactions.]] | [[http://infoscience.epfl.ch/record/140819|Elastic Transactions.]] | ||
//Proceedings of the 23rd International Symposum on Distributed Computing (DISC).// | //Proceedings of the 23rd International Symposum on Distributed Computing (DISC).// |