Skip to content
/ MGARD Public
forked from CODARcode/MGARD

MGARD: MultiGrid Adaptive Reduction of Data

License

Notifications You must be signed in to change notification settings

tugluk/MGARD

 
 

Repository files navigation

MGARD Build Status

MGARD (MultiGrid Adaptive Reduction of Data) is a technique for multilevel lossy compression of scientific data based on the theory of multigrid methods. This is an experimental C++ implementation for integration with existing software; use at your own risk! We encourage you to make a GitHub issue if you run into any problems using MGARD, have any questions or suggestions, etc.

Building and Installing

To build and install MGARD, run the following from the root of the repository. You will need CMake.

$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=<location to install MGARD>
$ cmake --build build
$ cmake --install build

GPU Acceleration

Detailed instructions for using MGARD with GPU acceleration can be found here.

Including and Linking

The API consists of a header file mgard_api.h providing declarations for function templates mgard::compress and mgard::decompress. See the header for documentation of these templates.

To use MGARD in your project, you will need to tell your compiler where to find the MGARD headers (by default, ${CMAKE_INSTALL_PREFIX}/include/mgard/) and library (by default, ${CMAKE_INSTALL_PREFIX}/lib/). If you're using CMake, you can call find_package(mgard) and add a dependency to the mgard::mgard imported target. See the examples directory for a basic example.

Command Line Interface

Assuming the dependencies are met, an executable called mgard will be built and installed. You can get help with the executable by running the following commands.

$ mgard --help
$ man mgard

References

MGARD's theoretical foundation and software implementation are discussed in the following papers. Reference [2] covers the simplest case and is a natural starting point. Reference [6] covers the design and implementation on GPU heterogeneous systems.

  1. Ben Whitney. Multilevel Techniques for Compression and Reduction of Scientific Data. PhD thesis, Brown University, 2018.
  2. Mark Ainsworth, Ozan Tugluk, Ben Whitney, and Scott Klasky. Multilevel Techniques for Compression and Reduction of Scientific Data—The Univariate Case. Computing and Visualization in Science 19, 65–76, 2018.
  3. Mark Ainsworth, Ozan Tugluk, Ben Whitney, and Scott Klasky. Multilevel Techniques for Compression and Reduction of Scientific Data—The Multivariate Case. SIAM Journal on Scientific Computing 41 (2), A1278–A1303, 2019.
  4. Mark Ainsworth, Ozan Tugluk, Ben Whitney, and Scott Klasky. Multilevel Techniques for Compression and Reduction of Scientific Data—Quantitative Control of Accuracy in Derived Quantities. SIAM Journal on Scientific Computing 41 (4), A2146–A2171, 2019.
  5. Mark Ainsworth, Ozan Tugluk, Ben Whitney, and Scott Klasky. Multilevel Techniques for Compression and Reduction of Scientific Data—The Unstructured Case. SIAM Journal on Scientific Computing, 42 (2), A1402–A1427, 2020.
  6. Jieyang Chen et al. Accelerating Multigrid-based Hierarchical Scientific Data Refactoring on GPUs. 35th IEEE International Parallel & Distributed Processing Symposium, May 17–21, 2021.

About

MGARD: MultiGrid Adaptive Reduction of Data

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 74.4%
  • Cuda 22.2%
  • CMake 1.9%
  • Python 1.2%
  • Shell 0.3%