GithubHelp home page GithubHelp logo

trunk96 / tm-benchmark Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 824 KB

GCC Transactional Memories benchmark to check against possible reordering of reads/writes in a transaction

Makefile 1.81% C 67.13% C++ 3.75% Shell 0.03% Assembly 0.98% Objective-C 0.15% HTML 24.62% CSS 1.28% JavaScript 0.13% Python 0.13%

tm-benchmark's Introduction

STM Benchmark

This benchmark application uses TinySTM as TM library.

To compile and run the application run compile.sh. It compiles TinySTM library and the benchmark.

To execute the benchmark go in applications/stm_synch and run "app" executable

The usage for the benchmark is

./app [number_of_threads] [dummy_time] [number_of_wait_cycles] [number_of_transaction_per_thread] [shared_memory_size] [number_of_test_repetitions]

  • number_of_threads is the number of thread the benchmark will spawn
  • dummy_time is the time spent doing nothing (transaction padding time)
  • number_of_wait_cycles is how many times a transaction has to wait dummy_time
  • number_of_transactions_per_thread is how many transactions each thread executes
  • shared_memory_size indicates the size in double words (8 bytes) of the shared memory block accessed by the transactions. It should be a multiple of 4, since each instruction of a transaction accesses randomly an memory area in a sub-block that is 1/4 the original block.
  • number_of_test_repetition indicates the times the test will run (in order to have good statistical data on transactions time and aborts number)

To better visualize the result of the benchmark it is possible to copy and paste the output of the benchmark in a text file, save it and run python3 results.py [file_name] It would print the time plot and then the aborts plot.

To disable Intel Hyperthreading you can use applications/stm_synch/stop_ht.sh (and start_ht.sh to restart it), modifying the logical processors number for your architecture (it is possible to see which are the HT logical cores with grep -H . /sys/devices/system/cpu/cpu*/topology/thread_siblings_list, that are the second number in each printed line; more information here)

tm-benchmark's People

Contributors

trunk96 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.