foxmailed / sto

Software Transactional Objects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Install

    $ ./bootstrap.sh
    $ ./configure
    $ make

(NOTE: if you are using OS X you should probably run ./configure CXX='clang++ -stdlib=libc++ -std=c++11')

Tests

Run single-threaded tests:

./single

Multi-threaded test: (-c performs a check of the multithreaded correctness)

./concurrent randomrw DATASTRUCTURE -c

^ runs with 4 threads, 1 million total transactions of size 10 each, half of which are read-writes

If this is too fast:

./concurrent randomrw DATASTRUCTURE --ntrans=10000000 -c

Check delete multithreaded correctness (not applicable for arrays):

./concurrent xordelete DATASTRUCTURE -c

You can get a list of both available tests and data structures by running ./concurrent without arguments.

Benchmark singlethreaded:

./concurrent randomrw DATASTRUCTURE --nthreads=1

or

./concurrent randomrw DATASTRUCTURE --nthreads=1 --ntrans=10000000

Or if you want to test transaction system overhead, read-my-writes overhead, etc. (larger transactions):

./concurrent randomrw DATASTRUCTURE --nthreads=1 --opspertrans=100

(and benchmarking multithreaded just involves changing the --nthreads argument)

Paper benchmarks

See BENCHMARKS.md for some help on reproducing data/graphs from the paper.

About

Software Transactional Objects


Languages

Language:C++ 83.4%Language:C 10.0%Language:Python 2.7%Language:M4 2.2%Language:Shell 1.7%