Skip to content

Commit

Permalink
Merge pull request #302 from LLNL/hotfix/docs
Browse files Browse the repository at this point in the history
Bugfix in documentations
  • Loading branch information
KIwabuchi authored Nov 23, 2023
2 parents b49d865 + cc6ba03 commit 8df4db7
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 19 deletions.
9 changes: 9 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.12"

mkdocs:
configuration: mkdocs.yml
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
3 changes: 1 addition & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

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 8df4db7

Please sign in to comment.