#!/usr/bin/env bash # General modules ############################################################# # # There are a lot of required modules already loaded when connecting # such as mpi, libfabric and others. # The following modules just add to these. module load PrgEnv-amd/8.3.3 module load amd/5.1.0 module load craype-accel-amd-gfx90a module load rocm/5.1.0 export MPICH_GPU_SUPPORT_ENABLED=1 module load cray-mpich/8.1.15 export LD_LIBRARY_PATH=${CRAY_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH} module load cmake module load zlib/1.2.11 module load git/2.31.1 # Other Software ############################################################## # I have these in my environment due to these being a dependency of other software I use module load libpng/1.6.37 freetype/2.11.0 ## set environment variables required for compiling and linking ## see (https://docs.olcf.ornl.gov/systems/crusher_quick_start_guide.html#compiling-with-hipcc) export CXX=hipcc export HIPCC_COMPILE_FLAGS_APPEND="$HIPCC_COMPILE_FLAGS_APPEND -I${MPICH_DIR}/include" export HIPCC_LINK_FLAGS_APPEND="$HIPCC_LINK_FLAGS_APPEND -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa" export HIPFLAGS="--amdgpu-target=gfx90a $HIPFLAGS" export CC=amdclang PE_MPICH_GTL_DIR_amd_gfx90a="-L${CRAY_MPICH_ROOTDIR}/gtl/lib" PE_MPICH_GTL_LIBS_amd_gfx90a="-lmpi_gtl_hsa" export CFLAGS="-I${ROCM_PATH}/include -I${MPICH_DIR}/include $CFLAGS" export LDFLAGS="-L${ROCM_PATH}/lib -lamdhip64 -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa $LDFLAGS" export LD_LIBRARY_PATH=${CRAY_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH} set -euf -o pipefail # create temporary directory for software source files export SOURCE_DIR="$HOME/lib_temp" mkdir -p $SOURCE_DIR cd $SOURCE_DIR # ADIOS2 git clone -b v2.8.0 https://github.com/ornladios/ADIOS2.git \ $SOURCE_DIR/adios2 mkdir $SOURCE_DIR/adios2-build cd $SOURCE_DIR/adios2-build cmake $SOURCE_DIR/adios2 -DADIOS2_BUILD_EXAMPLES=OFF -DADIOS2_BUILD_TESTING=OFF make