refactor CSCS and Meg content add merlin6 quick start update merlin6 nomachine docs give the userdoc its own color scheme we use the Materials default one refactored slurm general docs merlin6 add merlin6 JB docs add software support m6 docs add all files to nav vibed changes #1 add missing pages further vibing #2 vibe #3 further fixes
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
---
|
|
title: IPPL
|
|
keywords: IPPL software, compile
|
|
summary: "Independent Parallel Particle Layer (IPPL) is a performance portable C++ library for Particle-Mesh methods"
|
|
sidebar: merlin7_sidebar
|
|
toc: false
|
|
permalink: /merlin7/ippl.html
|
|
---
|
|
|
|
## IPPL
|
|
|
|
Independent Parallel Particle Layer (IPPL) is a performance portable C++ library for Particle-Mesh methods. IPPL makes use of Kokkos (https://github.com/kokkos/kokkos), HeFFTe (https://github.com/icl-utk-edu/heffte), and MPI (Message Passing Interface) to deliver a portable, massively parallel toolkit for particle-mesh methods. IPPL supports simulations in one to six dimensions, mixed precision, and asynchronous execution in different execution spaces (e.g. CPUs and GPUs).
|
|
|
|
## Licensing Terms and Conditions
|
|
|
|
GNU GPLv3
|
|
|
|
## How to run on Merlin7
|
|
### A100 nodes
|
|
[](https://gitea.psi.ch/HPCE/spack-psi)
|
|
```bash
|
|
module use Spack unstable
|
|
module load gcc/13.2.0 openmpi/5.0.7-dnpr-A100-gpu boost/1.82.0-lgrt fftw/3.3.10.6-zv2b-omp googletest/1.14.0-msmu h5hut/2.0.0rc7-zy7s openblas/0.3.29-zkwb cmake/3.31.6-ufy7
|
|
|
|
cd <path to IPPL source directory>
|
|
mkdir build_gpu
|
|
cd build_gpu
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DKokkos_ARCH_AMPERE80=ON -DCMAKE_CXX_STANDARD=20 -DIPPL_ENABLE_FFT=ON -DIPPL_ENABLE_TESTS=ON -DUSE_ALTERNATIVE_VARIANT=ON -DIPPL_ENABLE_SOLVERS=ON -DIPPL_ENABLE_ALPINE=True -DIPPL_PLATFORMS=cuda ..
|
|
make [-jN]
|
|
```
|
|
|
|
### GH nodes
|
|
[](https://gitea.psi.ch/HPCE/spack-psi)
|
|
|
|
```bash
|
|
salloc --partition=gh-daily --clusters=gmerlin7 --time=08:00:00 --ntasks=4 --nodes=1 --gpus=1 --mem=40000 $SHELL
|
|
ssh <allocated_gpu>
|
|
|
|
module use Spack unstable
|
|
module load gcc/13.2.0 openmpi/5.0.3-3lmi-GH200-gpu
|
|
module load boost/1.82.0-3ns6 fftw/3.3.10 gnutls/3.8.3 googletest/1.14.0 gsl/2.7.1 h5hut/2.0.0rc7 openblas/0.3.26 cmake/3.31.4-u2nm
|
|
|
|
cd <path to IPPL source directory>
|
|
mkdir build_gh
|
|
cd build_gh
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DKokkos_ARCH_HOPPER90=ON -DCMAKE_CXX_STANDARD=20 -DIPPL_ENABLE_FFT=ON -DIPPL_ENABLE_TESTS=ON -DUSE_ALTERNATIVE_VARIANT=ON -DIPPL_ENABLE_SOLVERS=ON -DIPPL_ENABLE_ALPINE=True -DIPPL_PLATFORMS=cuda ..
|
|
make [-jN]
|
|
```
|