GithubHelp home page GithubHelp logo

penberg / posixbench Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 0.0 674 KB

POSIX latency and energy-efficiency benchmark suite

License: MIT License

CMake 5.85% Python 4.83% Makefile 3.72% Shell 1.41% C++ 84.19%
posix benchmark

posixbench's Introduction

POSIX Benchmarks

Getting Started

You need to configure your machine before running the benchmarks.

Disable TurboBoost.

sudo ./scripts/turbo-boost.sh

Disable CPU power saving mode:

sudo cpupower --cpu all frequency-set --governor performance

Configure huge pages:

sudo ./scripts/hugepages.sh

Kill background processes and services.

Benchmarking

Prerequisites:

  • matplotlib
  • pandas
make build
make bench

posixbench's People

Contributors

penberg avatar

Stargazers

Tom Byrer avatar Ashwin Rao avatar  avatar

Watchers

 avatar James Cloos avatar moxuansheng avatar  avatar

posixbench's Issues

Measure energy consumption

Let's see if we can use Intel's RAPL interface to measure energy consumption of POSIX operations. For example, we can query the PKG_ENERGY_STATUS MSR register before an operation and after an operation and calculate the amount of energy consumed for a single operation.

More information on the RAPL interface here:

http://web.eece.maine.edu/~vweaver/projects/rapl/

and an example program to access the MSRs here:

http://web.eece.maine.edu/~vweaver/projects/rapl/rapl-read.c

Machine topology discovery

We currently vary the placement of threads on each logical CPU core. Instead, we should use something like hwloc library to discover machine topology and run some of the benchmarks (for example eventfd) in the following configurations: socket local, NUMA local, and NUMA remote.

Avoid measurement bias

Let's analyze what measurement bias the posixbench suite has and address them.

The following paper is a good starting point for understand measurement bias:

Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. 2009. Producing wrong data without doing anything obviously wrong! SIGARCH Comput. Archit. News 37, 1 (March 2009), 265โ€“276.

Another data point is the causal profiling stuff from Emery Berger and others.

Large page benchmarks

The page fault benchmark uses 4K pages. Let's add a variant that uses large pages too.

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.