Skip to content

yhuacode/pm-workloads

Repository files navigation

Table of Contents

Description

This repo contains the workloads for PMRace with corresponding patches.

Prerequisites

Install required dependencies (for these PM workloads).

    $ sudo apt-get install build-essential cmake libboost-all-dev libpapi-dev default-jdk \
        libtbb-dev libjemalloc-dev libevent-dev

Setup

Update submodules

    $ git submodule init && git submodule update --progress

Set the environment variables, e.g., LLVM_DIR and PMRACE_DIR, which are configured by the "env.sh" of artifacts.

Workloads

1. P-CLHT

Apply Patch

Run the following commands to apply the required patch.

    $ cd RECIPE
    $ ../patches/apply_patches.sh RECIPE

Build

Run the following commands to build.

    $ mkdir -p P-CLHT/build
    $ cd P-CLHT/build
    $ cmake -DCMAKE_BUILD_TYPE=Debug ..
    $ make

Run

To run the debugging tool.

    $ $PMRACE_DIR/scripts/clear.sh                   # clear the results of previous tests
    $ python3 $PMRACE_DIR/scripts/fuzz.py -e p-clht -d ./CMakeFiles/driver.dir -p $PMRACE_DIR/deps/pmdk -s /path/to/seeds

Generate Patch (optional)

To export patches (for RECIPE).

    $ ../patches/gen_patches.sh RECIPE

2. memcached-pmem

Apply Patch

Run the following commands to apply the required patch.

    $ cd memcached-pmem
    $ ../patches/apply_patches.sh memcached

Build

Run the following commands to build.

    $ autoreconf
    $ CC=clang CXX=clang++ ./configure --enable-pslab --enable-pmrace
    $ make

Run

To run the debugging tool.

    $ $PMRACE_DIR/scripts/clear.sh                   # clear the results of previous tests
    $ python3 $PMRACE_DIR/scripts/fuzz.py -e memcached -d ./ -p $PMRACE_DIR/deps/pmdk -s /path/to/seeds

Generate Patch (optional)

To export patches (for memcached-pmem).

    $ ../patches/gen_patches.sh memcached

3. CCEH

Apply Patch

Run the following commands to apply the required patch.

    $ cd CCEH/
    $ ../patches/apply_patches.sh CCEH

Build

Run the following commands to build.

    $ cd CCEH-PMDK/
    $ make

Run

Run the following commands to test CCEH.

    $ $PMRACE_DIR/scripts/clear.sh                   # clear the results of previous tests
    $ python3 $PMRACE_DIR/scripts/fuzz.py -e cceh -d ./ -p $PMRACE_DIR/deps/pmdk -s /path/to/seeds

Generate Patch (optional)

Run the following commands to generate the patch.

    $ ../patches/gen_patches.sh CCEH

4. FAST_FAIR

Apply Patch

Run the following commands to apply the required patch.

    $ cd FAST_FAIR/
    $ ../patches/apply_patches.sh FAST_FAIR

Build

Run the following commands to build.

    $ cd concurrent_pmdk/
    $ make

Run

Run the following commands to test FAST_FAIR.

    $ $PMRACE_DIR/scripts/clear.sh                   # clear the results of previous tests
    $ python3 $PMRACE_DIR/scripts/fuzz.py -e fast-fair -d ./ -p $PMRACE_DIR/deps/pmdk -s /path/to/seeds

Generate Patch (optional)

Run the following commands to generate the patch.

    $ ../patches/gen_patches.sh FAST_FAIR

5. Clevel Hashing

Apply Patch

Run the following commands to apply the required patch.

    $ cd Clevel-Hashing/
    $ ../patches/apply_patches.sh clevel

Build

Run the following commands to build.

    $ mkdir build
    $ cd build
    $ cmake -DENABLE_PMRACE=ON ..
    $ make -j16
    $ cd tests

Run

Run the following commands to test clevel hashing.

    $ $PMRACE_DIR/scripts/clear.sh                   # clear the results of previous tests
    $ python3 $PMRACE_DIR/scripts/fuzz.py -e clevel -d ./CMakeFiles/clevel_hash_ycsb.dir -p $PMRACE_DIR/deps/pmdk -s /path/to/seeds

Generate Patch (optional)

Run the following commands to generate the patch.

    $ ../patches/gen_patches.sh clevel

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages