Skip to content

riclas/POWER8TM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Framework with a variety of Transactional Memory implementations and benchmarks

Backends:

  • p8tm-si: POWER8-TM for Snapshot Isolation

  • p8tm: POWER8-TM with time efficient read-set tracking

  • p8tm-se: POWER8-TM with space efficient read-set tracking

  • p8tm-sepp: POWER8-TM with aggressive space efficient read-set tracking

  • p8tm-ucb: POWER8-TM with time efficient read-set tracking and self-tuning module enabled

  • herwl: Hardware Read-Write Lock Elision

  • htm-sgl: Power8 HTM used with a single global lock fallback

  • norec: NoReC STM

  • hybrid-norec: Hybird NoRec

Benchmarks:

  • Concurrent data-structures (hashmap)
  • STAMP suite
  • TPCC on in-memory database

To compile the benchmarks, use there is a specialized script under each benchmarks folder. These scripts expect three parameters (in this order):

  1. the backend name, corresponding to the folder under "backends"

  2. the number of retries for HTM usage, which may be omitted (default value 5)

  3. the number of retries for ROT usage after falling back from normal HTM (default value 2), must be >= 1 or in case of htm-sgl or hyrbid-norec: the retry policy to adopt in case of HTM persistent aborts, i.e., how the number of retries is updated upon a persistent abort, which may be omitted (possible values: 0, do not retry in htm and resort to the fallback path; 1, decrease by one; 2, divide by two; default value 1)

Hence, a common usage shall be: "bash build-datastructures.sh p8tm 10 5"

About

source code for P8TM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 58.2%
  • C 37.5%
  • Objective-C 2.2%
  • Makefile 0.8%
  • Shell 0.7%
  • Perl 0.5%
  • Python 0.1%