Skip to content
forked from tudinfse/haft

Hardware Assisted Fault Tolerance (HAFT)

License

Notifications You must be signed in to change notification settings

zhichaoyan/haft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HAFT (Hardware Assisted Fault Tolerance)

HAFT is a compiler framework that transforms unmodified multithreaded applications to support fault detection via instruction-level replication (ILR) and fault recovery via hardware transactional memory (HTM, in our case Intel TSX). See HAFT paper for details.

Benchmarks

This repository provides two benchmark suites, PARSEC and Phoenix (pthreads version):

The other benchmarks (LogCabin, Memcached, SQLite3, LevelDB, and Apache) are not found in this repository. Please ask us directly if you need them via email: dmitrii.kuvaiskii [at] tu-dresden [dot] de.

Docker

Docker Hub contains a ready-to-use Docker image.

Installation and Performance Experiments

  • You can always use the ready-to-use docker image. However, you can also build a new docker image locally:
make build   # creates haft_container docker
  • To run the docker image, use:
make run   # runs haft_container docker
  • In docker, to install benchmarks:
./install/install_parsec.sh
./install/install_phoenix.sh
  • In docker, to run benchmarks:
EXPORT NUM_RUNS=10   # by default, each benchmark is run once
./install/run_parsec.sh
./install/run_phoenix.sh
  • The results of benchmark runs are aggregated in two logs, saved in your current directory under data/:
less data/parsec.log       # complete log of PARSEC benchmarks' runs
less data/parsec_raw.txt   # aggregated results of PARSEC benchmarks' runs
less data/phoenix.log      # complete log of Phoenix benchmarks' runs
less data/phoenix_raw.txt  # aggregated results of Phoenix benchmarks' runs

About

Hardware Assisted Fault Tolerance (HAFT)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 45.2%
  • C++ 32.6%
  • Python 10.8%
  • Shell 7.7%
  • Makefile 3.7%