- Table of Contents
- Description
- Prerequisites
- Setup
- Workloads
This repo contains the workloads for PMRace with corresponding patches.
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
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.
Run the following commands to apply the required patch.
$ cd RECIPE
$ ../patches/apply_patches.sh RECIPE
Run the following commands to build.
$ mkdir -p P-CLHT/build
$ cd P-CLHT/build
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
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
To export patches (for RECIPE).
$ ../patches/gen_patches.sh RECIPE
Run the following commands to apply the required patch.
$ cd memcached-pmem
$ ../patches/apply_patches.sh memcached
Run the following commands to build.
$ autoreconf
$ CC=clang CXX=clang++ ./configure --enable-pslab --enable-pmrace
$ make
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
To export patches (for memcached-pmem).
$ ../patches/gen_patches.sh memcached
Run the following commands to apply the required patch.
$ cd CCEH/
$ ../patches/apply_patches.sh CCEH
Run the following commands to build.
$ cd CCEH-PMDK/
$ make
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
Run the following commands to generate the patch.
$ ../patches/gen_patches.sh CCEH
Run the following commands to apply the required patch.
$ cd FAST_FAIR/
$ ../patches/apply_patches.sh FAST_FAIR
Run the following commands to build.
$ cd concurrent_pmdk/
$ make
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
Run the following commands to generate the patch.
$ ../patches/gen_patches.sh FAST_FAIR
Run the following commands to apply the required patch.
$ cd Clevel-Hashing/
$ ../patches/apply_patches.sh clevel
Run the following commands to build.
$ mkdir build
$ cd build
$ cmake -DENABLE_PMRACE=ON ..
$ make -j16
$ cd tests
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
Run the following commands to generate the patch.
$ ../patches/gen_patches.sh clevel