Skip to content

Commit

Permalink
Bugfix in documentations
Browse files Browse the repository at this point in the history
  • Loading branch information
KIwabuchi committed Nov 23, 2023
1 parent b49d865 commit ccee58c
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 18 deletions.
42 changes: 25 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,23 @@
Metall: A Persistent Memory Allocator for Data-Centric Analytics
===============================================

* Provides rich memory allocation interfaces for C++ applications that
use persistent memory devices to persistently store heap data on such
devices.
* Creates files in persistent memory and maps them into virtual memory
space so that users can access the mapped region just as normal memory
regions allocated in DRAM.
* Actual persistent memory hardware could be any non-volatile memory (NVM) with file system support.
* To provide persistent memory allocation, Metall employs concepts and
APIs developed by
[Boost.Interprocess](https://www.boost.org/doc/libs/1_69_0/doc/html/interprocess.html).
* Supports multi-thread
* Also provides a space-efficient snapshot/versioning, leveraging reflink
copy mechanism in filesystem. In case reflink is not supported, Metall
automatically falls back to regular copy.
* See details: [Metall overview slides](docs/publications/metall_101.pdf).

- A memory allocator enables applications to transparently allocate data into a file system.

- From applications, Metall looks like a normal heap allocator.

- Applications can keep their data beyond single process life cycles and reattach the data in succeeding runs.

- Leverages the memory-mapped file mechanism (i.e., [mmap(2)](https://man7.org/linux/man-pages/man2/mmap.2.html)) to _map_ application data in files to the main memory.

- Employs the API developed by [Boost.Interprocess](https://www.boost.org/doc/libs/1_69_0/doc/html/interprocess.html).

- Useful for allocating C++ data structures (including STL containers).

- Incorporates state-of-the-art allocation algorithms.

- Provides a space-efficient snapshot/versioning, leveraging the reflink copy mechanism in file systems.

- See details: [Metall overview slides](docs/publications/metall_101.pdf).

# Getting Started

Expand Down Expand Up @@ -62,7 +63,9 @@ However, we haven't tested it intensively.
Also, Boost C++ Libraries 1.69 or more may be required
if one wants to build Metall with Clang + CUDA.

## Metall with Spack
## Package Manager Support

### Metall with Spack

Metall package is also available on [Spack](https://spack.io/).

Expand All @@ -82,6 +85,11 @@ spack load metall
g++ -std=c++17 your_program.cpp -lstdc++fs -I${BOOST_ROOT}/include -I${METALL_ROOT}/include
```

### Metall with Connan

Metall is also available on [Conan](https://conan.io/), thanks to the [DICE](https://github.com/dice-group) research group.
Conan Metall package information is [here](https://conan.io/center/recipes/metall).


## Use Metall from Another CMake Project

Expand Down
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Required
version: 2

site_name: Metall
site_author: 'Keita Iwabuchi (LLNL), Roger A Pearce (LLNL), and Maya B Gokhale (LLNL)'
copyright: Copyright 2020 Lawrence Livermore National Security, LLC
copyright: Copyright 2023 Lawrence Livermore National Security, LLC

docs_dir: 'docs/readthedocs'
theme: 'readthedocs'
Expand Down

0 comments on commit ccee58c

Please sign in to comment.