README.md 1.73 KB
Newer Older
Kim, Jungwon's avatar
Kim, Jungwon committed
1
# Papyrus
2
Papyrus is a programming system that provides features for scalable, aggregate, persistent memory in an extreme-scale system for typical HPC usage scenarios. Papyrus provides a portable and scalable programming interface to access and manage parallel data structures on the distributed NVM storage.
3

Kim, Jungwon's avatar
Kim, Jungwon committed
4 5 6
## Requirements

- C++11 compiler
7
- MPI library supporting MPI\_THREAD\_MULTIPLE
8
- CMake (>=3.8)
Kim, Jungwon's avatar
Kim, Jungwon committed
9 10

## Installation
11

Kim, Jungwon's avatar
Kim, Jungwon committed
12
You can download Papyrus from code.ornl.gov:
Kim, Jungwon's avatar
Kim, Jungwon committed
13 14 15 16

    $ git clone https://code.ornl.gov/eck/papyrus.git
    $ cd papyrus

17 18
You can build Papyrus with CMake and Make:

19 20
    $ mkdir build
    $ cd build
21 22 23
    $ cmake .. -DCMAKE_INSTALL_PREFIX=<install_dir>
      or if you want to run tests after build
    $ cmake .. -DCMAKE_INSTALL_PREFIX=<install_dir> -DMPIEXEC=<mpiexec_path> -DMPIEXEC_NUMPROC_FLAG=<np_flag>
Kim, Jungwon's avatar
Kim, Jungwon committed
24
    $ make
25 26 27 28
    $ make install

### Running tests

29
For the Cray MPI Library, an environment variable MPICH\_MAX\_THREAD\_SAFETY has to be set to multiple:
Kim, Jungwon's avatar
Kim, Jungwon committed
30 31 32

    $ export MPICH_MAX_THREAD_SAFETY=multiple

33 34
The project's test suite can be run by executing:

Kim, Jungwon's avatar
Kim, Jungwon committed
35 36 37
    $ make test (or use 'ctest -V' for verbose test output)

## Repository contents
38

39 40 41 42 43 44 45 46
- The public interface is in include/papyrus/\*.h.
- The Key-Value Store is in kv/.

## References

To cite Papyrus, please use the following papers:

- Jungwon Kim, Kittisak Sajjapongse, Seyong Lee, and Jeffrey S. Vetter. "Design and Implementation of Papyrus: Parallel Aggregate Persistent Storage". IPDPS 2017, DOI: [10.1109/IPDPS.2017.72](https://doi.org/10.1109/IPDPS.2017.72)
Kim, Jungwon's avatar
Kim, Jungwon committed
47
- Jungwon Kim, Seyong Lee, and Jeffrey S. Vetter. "PapyrusKV: A High-Performance Parallel Key-Value Store for Distributed NVM Architectures". SC 2017. DOI: [10.1145/3126908.3126943](https://doi.org/10.1145/3126908.3126943)