Skip to content

Building with Vc on KNL

Bryce Adelstein-Lelbach edited this page Mar 20, 2017 · 2 revisions

Step 1: Build Vc

Get our fork of Vc:

git clone https://github.com/STEllAR-GROUP/Vc.git
cd Vc

Build and install it (note that we only use the header only component:

mkdir BUILD
cd BUILD
cmake -DCMAKE_CXX_COMPILER="g++"           \
      -DCMAKE_CXX_FLAGS="-march=knl"       \
      -DBUILD_TESTING=OFF                  \
      -DCMAKE_INSTALL_PREFIX="../INSTALL"  \
      ..
make -j16 install

Step 2: Build HPX with Vc

Get HPX:

git clone https://github.com/STEllAR-GROUP/hpx.git
cd hpx

Build and install it (example here uses the Cray toolchain cmake script that works for Cori Phase II):

mkdir BUILD_AVX512_RELEASE
cd BUILD_AVX512_RELEASE
cmake -DCMAKE_TOOLCHAIN_FILE="${SOURCE}/cmake/toolchains/CrayKNL.cmake" \
      -DCMAKE_BUILD_TYPE="Release"                                      \
      -DHPX_WITH_DATAPAR_VC=ON                                          \
      -DHPX_WITH_DATAPAR_VC_NO_LIBRARY=ON                               \
      -DVc_INCLUDE_DIR="/path/to/your/Vc/INSTALL/include"               \
      -DBOOST_ROOT="/path/to/your/boost"                                \
      -DTCMALLOC_ROOT="/path/to/your/tcmalloc"                          \
      -DHWLOC_ROOT="/global/common/cori/software/hwloc/1.11.4/knl"      \
      -DHPX_WITH_MALLOC="tcmalloc"                                      \
      -DCMAKE_INSTALL_PREFIX="../INSTALL_AVX512_RELEASE"                \
      ..
make -j16 install

Step 3: Build octotiger against the HPX

Get Octotiger:

git clone https://github.com/STEllAR-GROUP/octotiger.git
cd octotiger

Build it:

mkdir BUILD_AVX512_RELEASE
cd BUILD_AVX512_RELEASE
cmake -DCMAKE_TOOLCHAIN_FILE="${SOURCE}/cmake/toolchains/CrayKNL.cmake" \
      -DCMAKE_BUILD_TYPE="Release"                                      \
      -DCMAKE_PREFIX_PATH="/path/to/hpx"                                \
      -DHPX_WITH_MALLOC="tcmalloc"                                      \
      -DSilo_LIBRARY="/path/to/silo/lib/libsilo.a"                      \
      -DSilo_INCLUDE_DIR="/path/to/silo/include"                        \
      -DCMAKE_INSTALL_PREFIX="../INSTALL_AVX512_RELEASE"                \
      ..
make -j16 install