ghex-org / GHEX

Generic exascale-ready library for halo-exchange operations on variety of grids/meshes
Other
8 stars 14 forks source link

License CI Pip

GHEX

Generic exascale-ready library for halo-exchange operations on variety of grids/meshes.

Documentation and instructions at GHEX Documentation.

Installation instructions

Requirements

From Source

git clone https://github.com/ghex-org/GHEX.git
cd GHEX
git submodule update --init --recursive
mkdir -p build && cd build
cmake -DGHEX_WITH_TESTING=ON -DGHEX_USE_BUNDLED_LIBS=ON ..
make -j8
make test
CMake options
Option Allowed Values Default Description
CMAKE_INSTALL_PREFIX= <path> /usr/local Choose install path prefix
CMAKE_BUILD_TYPE= {Release, Debug} Release Choose type of build
GHEX_USE_BUNDLED_LIBS= {ON, OFF} OFF Use available git submodules
GHEX_USE_GPU= {ON, OFF} OFF Enable GPU
GHEX_GPU_TYPE= {AUTO, NVIDIA, AMD} AUTO Choose GPU type
CMAKE_CMAKE_CUDA_ARCHITECTURES= list of architectures "60;70;75" Only relevant for GHEX_GPU_TYPE=NVIDIA
CMAKE_CMAKE_HIP_ARCHITECTURES= list of architectures "gfx900;gfx906" Only relevant for GHEX_GPU_TYPE=AMD
GHEX_BUILD_FORTRAN= {ON, OFF} OFF Build with Fortran bindings
GHEX_BUILD_PYTHON_BINDINGS= {ON, OFF} OFF Build with Python bindings
GHEX_PYTHON_LIB_PATH= <path> ${CMAKE_INSTALL_PREFIX}/<python-site-packages-path> Installation directory for GHEX's Python package
GHEX_WITH_TESTING= {ON, OFF} OFF Build unit tests
GHEX_USE_XPMEM= {ON, OFF} OFF Use Xpmem
GHEX_TRANSPORT_BACKEND= {MPI, UCX, LIBFABRIC} MPI Choose transport backend

Pip Install

python -m venv ghex_venv
. ghex_venv/bin/activate
python -m pip install 'git+https://github.com/ghex-org/GHEX.git#subdirectory=bindings/python'
Pertinent environment variables
Variable Allowed Values Default Description
GHEX_USE_GPU= {ON, OFF} OFF Enable GPU
GHEX_GPU_TYPE= {AUTO, NVIDIA, AMD} AUTO Choose GPU type
GHEX_GPU_ARCH= list of archs "60;70;75;80"/ "gfx900;gfx906" GPU architecture
GHEX_TRANSPORT_BACKEND= {MPI, UCX, LIBFABRIC} MPI Choose transport backend

Acknowledgements

The development of GHEX was supported partly by The Partnership for Advanced Computing in Europe (PRACE). PRACE is an international non-profit association with its seat in Brussels. The PRACE Research Infrastructure provides a persistent world-class high performance computing service for scientists and researchers from academia and industry in Europe. The computer systems and their operations accessible through PRACE are provided by 5 PRACE members (BSC representing Spain, CINECA representing Italy, ETH Zurich/CSCS representing Switzerland, GCS representing Germany and GENCI representing France). The Implementation Phase of PRACE receives funding from the EU’s Horizon 2020 Research and Innovation Programme (2014-2020) under grant agreement 823767. For more information, see www.prace-ri.eu.