Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
stmbench7 [2010/11/10 10:50] transactions created |
stmbench7 [2011/03/02 17:46] transactions [C++ Version] |
||
---|---|---|---|
Line 6: | Line 6: | ||
implementation (in Java and C++) contains a lock-based synchronization | implementation (in Java and C++) contains a lock-based synchronization | ||
strategy that can serve as a baseline for comparison with various TMs. | strategy that can serve as a baseline for comparison with various TMs. | ||
- | The following paper describes STMBench7 in more detail: | ||
- | |||
- | Guerraoui, R., Kapalka, M. and Vitek, J. (2007) | ||
- | [[http://infoscience.epfl.ch/search?recid=101108|STMBench7: A Benchmark for Software Transactional Memory.]] | ||
- | //Proceedings of the Second European Systems Conference EuroSys 2007.// | ||
- | |||
- | The following paper describes our recent experiments with the | ||
- | benchmark using various available STM implementations: | ||
- | |||
- | Dragojevic, A., Guerraoui, R. and Kapalka, M. (2008) | ||
- | [[http://infoscience.epfl.ch/search?recid=117529|Dividing Transactional Memories by Zero.]] | ||
- | //3rd ACM SIGPLAN Workshop on Transactional Computing (Transact 2008).// | ||
- | |||
- | **Important note:** The benchmark is still a work in progress. The code and the specification may still undergo many, maybe significant, changes that should reflect the feedback we will get. | ||
- | |||
- | Any suggestions, comments or criticism are more than welcome and | ||
- | should be send to [[http://lpd.epfl.ch/kapalka|Michal Kapalka]]. | ||
==== Java Version ==== | ==== Java Version ==== | ||
- | The new Java version (07.03.2008 Beta) of STMBench7 has been | + | The new Java version integrates with the [[velox|VELOX]] stack: the code is parsed successfully using the TMJava precompiler and transactions are instrumented automatically using Deuce. |
- | released. The new features and changes from the previous version | + | |
- | (27.06.2007) are the following: | + | Apache Ant v1.8+ warnings have been fixed in v1.1 and remaining absolute path |
+ | in the build.xml that were causing portability bugs have been fixed. | ||
+ | |||
+ | The former Java version (07.03.2008 Beta) of STMBench7 added the following changes from the previous version | ||
+ | (27.06.2007): | ||
- Added correctness tests (useful for validating whether a given synchronization technique gives correct results): | - Added correctness tests (useful for validating whether a given synchronization technique gives correct results): | ||
* Invariant tests: the implementation checks whether all the invariants of the benchmark data structure are preserved. | * Invariant tests: the implementation checks whether all the invariants of the benchmark data structure are preserved. | ||
* Sequential replay of a concurrent execution: the implementation can replay a concurrent execution sequentially in order to check for violations of the opacity property. | * Sequential replay of a concurrent execution: the implementation can replay a concurrent execution sequentially in order to check for violations of the opacity property. | ||
- | - The new version does no longer use AspectJ: the coarse-grained and medium-grained locking methods are now fully implemented in Java, without adding any additional overhead when they are not used. | + | - Since 07.03.2008 Beta version it does no longer use AspectJ: the coarse-grained and medium-grained locking methods are now fully implemented in Java, without adding any additional overhead when they are not used. |
- The build procedure now uses Apache Ant instead of make. | - The build procedure now uses Apache Ant instead of make. | ||
Line 41: | Line 28: | ||
version of STMBench7. | version of STMBench7. | ||
- | - New version (07.03.2008 Beta) − source code and JAR binary file: [[http://lpd.epfl.ch/kapalka/files/stmbench7-07.03.2008-beta.tgz|stmbench7-07.03.2008-beta.tgz]] | + | - New version (25.02.2011): |
- | - Old version (21.02.2007): | + | * v1.2: [[http://lpd.epfl.ch/gramoli/doc/sw/sb7_java-v1.2.tgz|stmbench7_java-v1.2.tgz]] |
- | * Source code: [[http://lpd.epfl.ch/kapalka/files/stmbench7-21.02.2007.tgz|stmbench7-21.02.2007.tgz]] | + | - Old versions: |
- | * JAR binary file: [[http://lpd.epfl.ch/kapalka/files/stmbench7-21.02.2007.jar|stmbench7-21.02.2007.jar]] | + | * (07.03.2008 beta) source code and JAR binary file: [[http://lpd.epfl.ch/kapalka/files/stmbench7-07.03.2008-beta.tgz|stmbench7-07.03.2008-beta.tgz]] |
- | + | * (21.02.2007) source code: [[http://lpd.epfl.ch/kapalka/files/stmbench7-21.02.2007.tgz|stmbench7-21.02.2007.tgz]] | |
- | The Java version of STMBench7 is created/maintained by | + | * (21.02.2007) JAR binary file: [[http://lpd.epfl.ch/kapalka/files/stmbench7-21.02.2007.jar|stmbench7-21.02.2007.jar]] |
- | [[http://lpd.epfl.ch/kapalka|Michal Kapalka]] | + | |
==== C++ Version ==== | ==== C++ Version ==== | ||
The following files are available for download: | The following files are available for download: | ||
+ | * [[http://lpd.epfl.ch/gramoli/doc/sw/sb7_c++-v1.0.tar_.bz2|STMBench7]] working with gcc, DTMC, PTLSim-ASF/HyTM/HTM from [[velox|VELOX]]. | ||
* SwissTM, TinySTM and TinySTM STMBench7 source code: {{sb7_tt_20090910.tgz}} | * SwissTM, TinySTM and TinySTM STMBench7 source code: {{sb7_tt_20090910.tgz}} | ||
Line 63: | Line 50: | ||
The C++ version of STMBench7 is created/maintained by Aleksandar | The C++ version of STMBench7 is created/maintained by Aleksandar | ||
Dragojevic. | Dragojevic. | ||
+ | |||
+ | |||
+ | ==== Related publications ==== | ||
+ | |||
+ | Dragojevic A., Felber P., Gramoli V., Guerraoui R. (2011) | ||
+ | [[http://infoscience.epfl.ch/record/144052|Why STM can be more than a Research Toy.]] | ||
+ | //Communications of the ACM (CACM).// | ||
+ | |||
+ | Afek et al. (2010) | ||
+ | [[http://dx.doi.org/10.1109/MM.2010.80|The VELOX Transactional Memory Stack.]] | ||
+ | //IEEE Micro Special Issue - European Multicore Computing. IEEE MICRO 30(5):76-87. // | ||
+ | |||
+ | Dragojevic, A., Guerraoui, R. and Kapalka, M. (2008) | ||
+ | [[http://infoscience.epfl.ch/search?recid=117529|Dividing | ||
+ | Transactional Memories by Zero.]] //3rd ACM SIGPLAN Workshop on | ||
+ | Transactional Computing (Transact 2008).// | ||
+ | |||
+ | Guerraoui, R., Kapalka, M. and Vitek, J. (2007) | ||
+ | [[http://infoscience.epfl.ch/record/101108|STMBench7: A Benchmark for Software Transactional Memory.]] //EuroSys.// | ||
+ | |||
+ | |||
+ |