Skip to content

Building APEX on OLCF Summit

Kevin Huck edited this page Mar 23, 2023 · 2 revisions

The APEX CMake configuration will download and build all requested dependencies, if desired. The easiest way to install APEX for Summit is with spack, doing:

spack install apex

If you're not using spack, the next easiest way is to use this installation script in the apex directory, after doing git clone https://github.com/UO-OACISS/apex:

module reset
module unload darshan-runtime xl
module load gcc/7.4.0 cmake cuda papi
module list

cwd=`pwd`
version=`date +%Y.%m.%d`
builddir=${cwd}/apex_build
instdir=${cwd}/apex_install-summit-${version}

rm -rf ${builddir} ${instdir}
mkdir ${builddir}
cd ${builddir}

set -x
cmake \
-DCMAKE_C_COMPILER=`which gcc` \
-DCMAKE_CXX_COMPILER=`which g++` \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${instdir} \
-DCMAKE_CUDA_ARCHITECTURES=70 \
-DAPEX_WITH_CUDA=TRUE \
-DAPEX_WITH_OMPT=FALSE \
-DAPEX_WITH_PLUGINS=TRUE \
-DAPEX_WITH_PAPI=TRUE \
-DAPEX_WITH_OTF2=TRUE \
-DAPEX_WITH_TCMALLOC=TRUE \
-DAPEX_BUILD_TESTS=TRUE \
-DAPEX_BUILD_EXAMPLES=TRUE \
-DAPEX_WITH_ACTIVEHARMONY=TRUE \
-DAPEX_WITH_MPI=TRUE \
${cwd}

make -j8
make -j install

You can speed up the build considerably if you elect not to use some features:

  • -DAPEX_WITH_OMPT=FALSE if you don't need OpenMP measurement (can conflict with some OpenMP offloading currently)
  • -DAPEX_WITH_ACTIVEHARMONY=FALSE if you don't need APEX policies (Kokkos autotuning will still be available)
  • -DAPEX_WITH_OTF2=TRUE if you don't need Vampir trace output
  • -DAPEX_WITH_TCMALLOC=TRUE if you don't worry about measurement overhead (APEX benefits from the Google PerfTools TCMalloc library, which is a thread-friendly heap manager). TCMalloc does conflict with other heap managers, though - like JEMalloc.
  • -DAPEX_BUILD_TESTS=FALSE if you don't need to test the installation
  • -DAPEX_BUILD_EXAMPLES=FALSE if you don't need to build examples