Parthenon AMR infrastructure
- CMake 3.10 or greater
- gcc or intel compiler
- mpi
- openMP
- hdf5
- catch2
mkdir build
cd build
cmake ../
make
make test
Following options are available to configure the default behavior of the par_for
wrappers.
PAR_LOOP_LAYOUT
(sets default layout)MANUAL1D_LOOP
maps toKokkos::RangePolicy
(default for CUDA backend)MDRANGE
maps toKokkos::MDRangePolicy
SIMDFOR_LOOP
maps to standardfor
loops with#pragma omp simd
(default for OpenMP backend)TPTTR_LOOP
maps to double nested loop withKokkos::TeamPolicy
andKokkos::ThreadVectorRange
TPTVR_LOOP
maps to double nested loop withKokkos::TeamPolicy
andKokkos::ThreadVectorRange
TPTTRTVR_LOOP
maps to triple nested loop withKokkos::TeamPolicy
,Kokkos::TeamThreadRange
andKokkos::ThreadVectorRange
Kokkos can be configured through cmake
options, see https://github.com/kokkos/kokkos/wiki/Compiling
For example to build with the OpenMP backend for Intel Skylake architecture using Intel compilers
mkdir build-omp-skx && cd build-omp-skx
cmake -DKokkos_ENABLE_OPENMP=On -DCMAKE_CXX_COMPILER=icpc -DKokkos_ARCH_SKX=On ../
or to build for NVIDIA V100 GPUs (using nvcc
compiler for GPU code)
mkdir build-cuda-v100 && cd build-cuda-v100
cmake -DKokkos_ENABLE_CUDA=On -DCMAKE_CXX_COMPILER=$(pwd)/../external/kokkos/bin/nvcc_wrapper -DKokkos_ARCH_VOLTA70=On ../
Please see the developer guidelines for additional information.
Please see the docs/ folder for additional documentation on features and how to use them.
Name | Handle | Team |
---|---|---|
Jonah Miller | @Yurlungur | LANL Physics |
Josh Dolence | @jdolence | LANL Physics |
Andrew Gaspar | @AndrewGaspar | LANL Computer Science |
Philipp Grete | @pgrete | Athena Physics |
Forrest Glines | @forrestglines | Athena Physics |
Jim Stone | @jmstone | Athena Physics |
Jonas Lippuner | @jlippuner | LANL Computer Science |
Joshua Brown | @JoshuaSBrown | LANL Computer Science |