Building and Running on Aurora - SCOREC/pumi-pic GitHub Wiki

Build for GPUs using the Intel compilers and the SYCL model

#!/bin/bash -e
export root=$PWD
echo "start building in: $root"
module load mpich/opt/4.3.0
module load netcdf-c
module load cmake
module load hdf5
module load netcdf-fortran

export MPICH_CXX=$root/kokkos/bin/nvcc_wrapper
export ftn_compiler=ifx
export cxx_compiler=icpx
export c_compiler=icx
# mkdir $root
cd $root

export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:\
$root/build-kokkos/install:\
$root/build-omegah/install:\
$root/build-cabana/install:\
$root/build-engpar/install:\
$root/build-pumipic/install

# kokkos
# git clone -b 4.5.00 https://github.com/kokkos/kokkos.git
cmake -S kokkos -B build-kokkos \
  -DCMAKE_INSTALL_PREFIX=build-kokkos/install \
  -DCMAKE_CXX_COMPILER=$cxx_compiler \
  -DCMAKE_CXX_STANDARD=17 \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DKokkos_ARCH_INTEL_PVC=ON \
  -DKokkos_ENABLE_SYCL=ON \
  -DKokkos_ENABLE_SERIAL=ON \
  -DKokkos_ENABLE_DEBUG=off
cmake --build build-kokkos -j 24 --target install

# omegah
# git clone https://github.com/SCOREC/omega_h.git
cmake -S omega_h -B build-omegah \
  -DCMAKE_INSTALL_PREFIX=build-omegah/install \
  -DCMAKE_BUILD_TYPE=Release \
  -DOmega_h_USE_Kokkos=ON \
  -DOmega_h_USE_SYCL=ON \
  -DOmega_h_USE_MPI=on  \
  -DCMAKE_CXX_COMPILER=$cxx_compiler \
  -DBUILD_TESTING=off
cmake --build build-omegah -j 24 --target install

# engpar
# git clone https://github.com/SCOREC/EnGPar.git
unset MPICH_CXX #don't want nvcc_wrapper for engpar
cmake -S EnGPar -B build-engpar \
  -DCMAKE_INSTALL_PREFIX=build-engpar/install \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_COMPILER=mpicc \
  -DCMAKE_CXX_COMPILER=mpic++ \
  -DCMAKE_CXX_FLAGS="-std=c++11" \
  -DENABLE_PARMETIS=OFF \
  -DENABLE_PUMI=OFF \
  -DIS_TESTING=OFF
cmake --build build-engpar -j 24 --target install
export MPICH_CXX=$root/kokkos/bin/nvcc_wrapper #restore use of nvcc_wrapper

# cabana
# git clone -b 0.6.1 https://github.com/ECP-copa/Cabana.git cabana
cmake -S cabana -B build-cabana \
  -DCMAKE_INSTALL_PREFIX=build-cabana/install \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_CXX_COMPILER=$cxx_compiler \
  -DCabana_REQUIRE_HDF5=OFF \
  -DCabana_ENABLE_TESTING=OFF \
  -DCabana_ENABLE_EXAMPLES=OFF
cmake --build build-cabana -j 24 --target install

# pumipic
# git clone --recursive https://github.com/SCOREC/pumi-pic
cmake -S pumi-pic -B build-pumipic \
  -DCMAKE_INSTALL_PREFIX=build-pumipic/install \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_CXX_COMPILER=$cxx_compiler \
  -DCMAKE_C_COMPILER=$c_compiler \
  -DENABLE_CABANA=ON \
  -DTEST_DATA_DIR=$root/pumi-pic/pumipic-data \
  -DIS_TESTING=on \
  -DPS_IS_TESTING=on
cmake --build build-pumipic -j 24 --target install