Skip to content
John Biddiscombe edited this page Jan 9, 2020 · 33 revisions

#Settings for Clang build

# assuming clang is compiled and installed in /users/biddisco/apps/llvm
export CLANG_ROOT=$HOME/apps/llvm
export CC=$CLANG_ROOT/bin/clang
export CXX=$CLANG_ROOT/bin/clang++
export CPP=$CLANG_ROOT/bin/clang-cpp
#
export PATH=$CLANG_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$CLANG_ROOT/lib:$LD_LIBRARY_PATH

export CFLAGS=-fPIC
export CXXFLAGS="-fPIC -march=native -mtune=native -ffast-math -std=c++17 -stdlib=libc++ -I$CLANG_ROOT/include/c++/v1"
export LDFLAGS="-L$CLANG_ROOT/lib -rpath $CLANG_ROOT/lib"
export LDCXXFLAGS="$LDFLAGS -std=c++17 -stdlib=libc++"

export Boost_COMPILER=-clang60

#Settings for GCC build

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export CPP=/usr/bin/g++

export CXX_STANDARD=17
export CFLAGS=-fPIC
export CXXFLAGS="-fPIC -march=native -mtune=native -ffast-math -std=c++${CXX_STANDARD}"
export LDFLAGS=""
export LDCXXFLAGS="$LDFLAGS -std=c++${CXX_STANDARD}"

#Settings for all builds

# Versions

INSTALL_ROOT=$HOME/apps
HWLOC_VER=2.1.0
JEMALLOC_VER=5.2.1
OTF2_VER=2.1
BOOST_VER=1.69.0
BOOST_SUFFIX=1_69_0
BOOST_ROOT=$INSTALL_ROOT/cxx${CXX_STANDARD}/boost/$BOOST_VER
PAPI_VER=5.5.1

# Optional shortcuts for Apex output in HPX
alias APEX_OFF='export APEX_SCREEN_OUTPUT=0;export APEX_PROFILE=0;export APEX_OTF2=0'
alias APEX_ON='export APEX_SCREEN_OUTPUT=1;export APEX_PROFILE=1;export APEX_OTF2=1'

#Boost

cdb
wget netcologne.dl.sourceforge.net/project/boost/boost/$BOOST_VER/boost_$BOOST_SUFFIX.tar.gz
tar -xzf boost_$BOOST_SUFFIX.tar.gz
cd boost_$BOOST_SUFFIX
./bootstrap.sh 
./b2 cxxflags="$CXXFLAGS" linkflags="$LDCXXFLAGS" --prefix=$BOOST_ROOT --without-mpi --without-python --layout=tagged threading=multi link=shared variant=release address-model=64 architecture=x86 -j8 install

#cpptest

cmake -DCMAKE_CXX_FLAGS=$CXXFLAGS -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=$BOOST_ROOT ~/src/cpptest/

#MAGMA

cmake \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/magma \
 -DCUDA_HOST_COMPILER=/usr/bin/gcc-6 \
 -DMKLROOT=$MKL_ROOT \
 -DLAPACK_LIBRARIES="/opt/intel/mkl/lib/intel64/libmkl_core.so;/opt/intel/mkl/lib/intel64/libmkl_sequential.so;/opt/intel/mkl/lib/intel64/libmkl_rt.so" \
 ~/src/magma-2.3.0
cmake
 -DCMAKE_BUILD_TYPE=Release \
 -DUSE_FORTRAN=OFF \
 -DCMAKE_CXX_FLAGS="-fPIC -march=native -mtune=native -ffast-math" \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/magma \
 -DCUDA_HOST_COMPILER=/usr/bin/gcc-8 \
 -DMKLROOT=$MKL_ROOT \
 -DLAPACK_LIBRARIES="$HOME/intel/mkl/lib/intel64/libmkl_core.so;$HOME/intel/mkl/lib/intel64 /libmkl_sequential.so;$HOME/intel/mkl/lib/intel64/libmkl_rt.so" \
 ..

#DCA++

cmake \
 -DMAGMA_DIR:PATH=/home/biddisco/apps/magma \
 -DFFTW_INCLUDE_DIR:PATH=/usr/include \
 -DFFTW_LIBRARY:FILEPATH=/usr/lib/libfftw3.so \
 -DDCA_WITH_CUDA:BOOL=ON \
 -DCMAKE_BUILD_TYPE:STRING=Debug \
 -DCUDA_HOST_COMPILER:FILEPATH=/usr/bin/gcc-6 \
 -DCUDA_PROPAGATE_HOST_FLAGS=OFF \
 -DDCA_WITH_THREADED_SOLVER:BOOL=ON \
 -DDCA_WITH_MPI:BOOL=ON \
 -DMPI_C_COMPILER=$HOME/apps/mpich/bin/mpicc \
 -DTEST_RUNNER=$HOME/apps/mpich/bin/mpiexec \
 -DHDF5_ROOT=$HOME/apps/hdf5/1.8.17/ \
 -DLAPACK_LIBRARIES="/opt/intel/mkl/lib/intel64/libmkl_core.so;/opt/intel/mkl/lib/intel64/libmkl_sequential.so;/opt/intel/mkl/lib/intel64/libmkl_rt.so" \
 -DDCA_WITH_TESTS_EXTENSIVE:BOOL=ON \
 -DDCA_WITH_TESTS_FAST:BOOL=ON \
 -DDCA_WITH_TESTS_PERFORMANCE:BOOL=ON \
 -DDCA_WITH_TESTS_STOCHASTIC:BOOL=ON \
 ~/src/dca

 -DDCA_WITH_HPX=ON \
 -DHPX_DIR=$HOME/build/hpx-debug/lib/cmake/HPX \
 ~/src/dca

#libfabric

cdc
cd libfabric
./configure --prefix=$INSTALL_ROOT/libfabric --disable-verbs --disable-usnic --disable-udp --disable-rxm --disable-rxd
make -j install

#fabtests

cdc
cd fabtests
./configure --prefix=$INSTALL_ROOT/fabtests --with-libfabric=$INSTALL_ROOT/libfabric
make -j install

#hwloc

cdb
wget --no-check-certificate https://www.open-mpi.org/software/hwloc/v2.1/downloads/hwloc-$HWLOC_VER.tar.gz
tar -xzf hwloc-$HWLOC_VER.tar.gz
cd hwloc-$HWLOC_VER
#export CPPFLAGS='-I/opt/cuda/include'
#export LDFLAGS='-L/opt/cuda/lib64 -L/usr/lib64/nvidia'
#./configure --prefix=$INSTALL_ROOT/hwloc/$HWLOC_VER  --enable-cuda
./configure --prefix=$INSTALL_ROOT/hwloc/$HWLOC_VER  --disable-cuda --disable-opencl
make -j8 install

#HDF5

cdb
wget https://github.com/live-clones/hdf5/archive/hdf5-${HDF5_VER//./_}.tar.gz
tar -xzf hdf5-${HDF5_VER//./_}.tar.gz
cd hdf5-hdf5-${HDF5_VER//./_}
mkdir build
cd build
cmake \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
 -DCMAKE_EXE_LINKER_FLAGS="$LDCXXFLAGS" \
 -DALLOW_UNSUPPORTED=ON \
 -DHDF5_ENABLE_PARALLEL:BOOL=ON \
 -DHDF5_BUILD_CPP_LIB:BOOL=OFF \
 -DMPI_C_COMPILER=$HOME/apps/mpich/3.3.1/bin/mpicc \
 -DMPI_CXX_COMPILER=$HOME/apps/mpich/3.3.1/bin/mpicxx \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/hdf5/$HDF5_VER \
 ..
make -j8 install

#jemalloc

cdb
wget https://github.com/jemalloc/jemalloc/releases/download/$JEMALLOC_VER/jemalloc-$JEMALLOC_VER.tar.bz2
tar -xjf jemalloc-$JEMALLOC_VER.tar.bz2
cd jemalloc-$JEMALLOC_VER
./autogen.sh --prefix=$INSTALL_ROOT/jemalloc/$JEMALLOC_VER
make -j8 -k install

#OTF2 (for APEX)

cdb
wget http://www.vi-hps.org/upload/packages/otf2/otf2-$OTF2_VER.tar.gz
tar -xzf otf2-$OTF2_VER.tar.gz
cd otf2-$OTF2_VER/
./configure --prefix=$INSTALL_ROOT/otf2/$OTF2_VER --enable-shared
make -j8 install

Assorted HPX options

# Apex
 -DHPX_WITH_APEX=ON \
 -DHPX_WITH_APEX_NO_UPDATE=ON \
 -DOTF2_ROOT=$INSTALL_ROOT/otf2/$OTF2_VER \
# Optimized profiling
 -DHPX_WITH_NETWORKING:BOOL=OFF \
 -DHPX_WITH_LOGGING:BOOL=OFF \
 -DHPX_WITH_IO_COUNTERS:BOOL=OFF \
 -DHPX_WITH_PARCELPORT_ACTION_COUNTERS:BOOL=OFF \
 -DHPX_WITH_PARCEL_PROFILING:BOOL=OFF \
 -DHPX_WITH_STACKTRACES:BOOL=OFF \
 -DHPX_WITH_THREAD_CUMULATIVE_COUNTS:BOOL=OFF \
 -DHPX_WITH_THREAD_IDLE_RATES:BOOL=OFF \
 -DHPX_WITH_THREAD_MANAGER_IDLE_BACKOFF:BOOL=OFF \
 -DHPX_WITH_THREAD_STEALING_COUNTS:BOOL=OFF \
 -DHPX_WITH_VERIFY_LOCKS:BOOL=OFF \
 -DHPX_WITH_TIMER_POOL:BOOL=OFF \
 -DHPX_WITH_IO_POOL:BOOL=OFF \
# MPI
 -DHPX_WITH_MPI_FUTURES=ON

HPX Release

cmake \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/hpx/master \
 -DCMAKE_CXX_FLAGS=-std=c++17 \
 -DHWLOC_ROOT=$INSTALL_ROOT/hwloc/$HWLOC_VER \
 -DJEMALLOC_ROOT=$INSTALL_ROOT/jemalloc/$JEMALLOC_VER \
 -DBOOST_ROOT=$BOOST_ROOT \
 -DLIBFABRIC_ROOT=$INSTALL_ROOT/libfabric \
 -DHPX_WITH_MALLOC=JEMALLOC \
 -DHPX_WITH_TESTS:BOOL=ON \
 -DHPX_WITH_TESTS_BENCHMARKS:BOOL=ON \
 -DHPX_WITH_TESTS_EXTERNAL_BUILD:BOOL=OFF \
 -DHPX_WITH_TESTS_HEADERS:BOOL=OFF \
 -DHPX_WITH_TESTS_REGRESSIONS:BOOL=ON \
 -DHPX_WITH_TESTS_UNIT:BOOL=ON \
 -DHPX_WITH_EXAMPLES:BOOL=ON \
 -DHPX_WITH_HWLOC:BOOL=ON \
 -DHPX_WITH_PARCELPORT_LIBFABRIC:BOOL=OFF \
 -DHPX_PARCELPORT_LIBFABRIC_WITH_LOGGING=OFF \
 -DHPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE=ON \
 -DHPX_PARCELPORT_LIBFABRIC_PROVIDER=sockets \
 -DHPX_WITH_PARCELPORT_MPI:BOOL=OFF \
 -DHPX_WITH_PAPI:BOOL=OFF \
 -DHPX_WITH_APEX:BOOL=OFF \
 -DAPEX_WITH_OTF2:BOOL=OFF \
 -DHPX_WITH_THREAD_IDLE_RATES:BOOL=ON \
 /home/biddisco/src/hpx

HPX libfabric

cdb
cd hvtkm
cmake \
 -DCMAKE_BUILD_TYPE=Debug \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/hpx/master \
 -DCMAKE_CXX_FLAGS=-std=c++14 \
 -DCMAKE_EXE_LINKER_FLAGS=-dynamic \
 -DHWLOC_ROOT=$INSTALL_ROOT/hwloc/$HWLOC_VER \
 -DJEMALLOC_ROOT=$INSTALL_ROOT/jemalloc/$JEMALLOC_VER \
 -DBOOST_ROOT=$INSTALL_ROOT/boost/$BOOST_VER \
 -DLIBFABRIC_ROOT=$INSTALL_ROOT/libfabric \
 -DOTF2_ROOT=$INSTALL_ROOT/otf2/$OTF2_VER \
 -DHPX_WITH_MALLOC=JEMALLOC \
 -DHPX_WITH_TESTS:BOOL=ON \
 -DHPX_WITH_TESTS_BENCHMARKS:BOOL=ON \
 -DHPX_WITH_TESTS_EXTERNAL_BUILD:BOOL=OFF \
 -DHPX_WITH_TESTS_HEADERS:BOOL=OFF \
 -DHPX_WITH_TESTS_REGRESSIONS:BOOL=ON \
 -DHPX_WITH_TESTS_UNIT:BOOL=ON \
 -DHPX_WITH_EXAMPLES:BOOL=ON \
 -DHPX_WITH_HWLOC:BOOL=ON \
 -DHPX_WITH_PARCELPORT_LIBFABRIC:BOOL=ON \
 -DHPX_PARCELPORT_LIBFABRIC_WITH_LOGGING=OFF \
 -DHPX_PARCELPORT_LIBFABRIC_WITH_DEV_MODE=ON \
 -DHPX_PARCELPORT_LIBFABRIC_PROVIDER=sockets \
 -DHPX_WITH_PARCELPORT_MPI:BOOL=OFF \
 -DHPX_WITH_PAPI:BOOL=OFF \
 -DHPX_WITH_APEX:BOOL=OFF \
 -DAPEX_WITH_OTF2:BOOL=OFF \
 -DHPX_WITH_THREAD_IDLE_RATES:BOOL=ON \
 -DSUBPROJECT_HPX=ON \
 /home/biddisco/src/hvtkm

HPX cuda

cdb
cd hpx-cuda
cmake \
 -DCMAKE_BUILD_TYPE=Debug \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/hpx/master \
 -DCMAKE_CXX_FLAGS=-std=c++14 \
 -DCMAKE_EXE_LINKER_FLAGS=-dynamic \
 -DHWLOC_ROOT=$INSTALL_ROOT/hwloc/$HWLOC_VER \
 -DJEMALLOC_ROOT=$INSTALL_ROOT/jemalloc/$JEMALLOC_VER \
 -DBOOST_ROOT=$INSTALL_ROOT/boost/$BOOST_VER \
 -DLIBFABRIC_ROOT=$INSTALL_ROOT/libfabric \
 -DOTF2_ROOT=$INSTALL_ROOT/otf2/$OTF2_VER \
 -DHPX_WITH_MALLOC=JEMALLOC \
 -DHPX_WITH_TESTS:BOOL=ON \
 -DHPX_WITH_TESTS_BENCHMARKS:BOOL=ON \
 -DHPX_WITH_TESTS_EXTERNAL_BUILD:BOOL=OFF \
 -DHPX_WITH_TESTS_HEADERS:BOOL=OFF \
 -DHPX_WITH_TESTS_REGRESSIONS:BOOL=ON \
 -DHPX_WITH_TESTS_UNIT:BOOL=ON \
 -DHPX_WITH_EXAMPLES:BOOL=ON \
 -DHPX_WITH_HWLOC:BOOL=ON \
 -DHPX_WITH_PARCELPORT_MPI:BOOL=OFF \
 -DHPX_WITH_PAPI:BOOL=OFF \
 -DHPX_WITH_APEX:BOOL=OFF \
 -DAPEX_WITH_OTF2:BOOL=OFF \
 -DHPX_WITH_THREAD_IDLE_RATES:BOOL=ON \
 -DHPX_WITH_CUDA:BOOL=ON \
 /home/biddisco/src/hpx

HPX laptop Debug

cdb
cd hpx-debug
cmake \
 -DCMAKE_BUILD_TYPE=Debug \
 -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT/hpx/master \
 -DCMAKE_CXX_FLAGS=$CXXFLAGS \
 -DCMAKE_EXE_LINKER_FLAGS=$LDCXXFLAGS \
 -DHWLOC_ROOT=$INSTALL_ROOT/hwloc/$HWLOC_VER \
 -DJEMALLOC_ROOT=$INSTALL_ROOT/jemalloc/$JEMALLOC_VER \
 -DBOOST_ROOT=$BOOST_ROOT \
 -DLIBFABRIC_ROOT=$INSTALL_ROOT/libfabric \
 -DOTF2_ROOT=$INSTALL_ROOT/otf2/$OTF2_VER \
 -DPAPI_ROOT=$INSTALL_ROOT/papi/$PAPI_VER \
 -DPAPI_INCLUDE_DIR=$INSTALL_ROOT/papi/$PAPI_VER/include \
 -DPAPI_LIBRARY=/home/biddisco/apps/papi/5.5.1/lib/libpfm.so \
 -DHPX_WITH_MALLOC=JEMALLOC \
 -DHPX_WITH_TESTS:BOOL=ON \
 -DHPX_WITH_TESTS_BENCHMARKS:BOOL=ON \
 -DHPX_WITH_TESTS_EXTERNAL_BUILD:BOOL=OFF \
 -DHPX_WITH_TESTS_HEADERS:BOOL=OFF \
 -DHPX_WITH_TESTS_REGRESSIONS:BOOL=ON \
 -DHPX_WITH_TESTS_UNIT:BOOL=ON \
 -DHPX_WITH_EXAMPLES:BOOL=ON \
 -DHPX_WITH_HWLOC:BOOL=ON \
 -DHPX_WITH_PARCELPORT_MPI:BOOL=OFF \
 -DHPX_WITH_PAPI:BOOL=OFF \
 -DHPX_WITH_APEX:BOOL=OFF \
 -DHPX_WITH_APEX_NO_UPDATE:BOOL=ON \
 -DAPEX_WITH_OTF2:BOOL=ON \
 -DHPX_WITH_THREAD_IDLE_RATES:BOOL=ON \
 /home/biddisco/src/hpx
make clean && rm -rf lib/* bin/* && cmake -DCMAKE_BUILD_TYPE=Debug . && make -j8 simple_resource_partitioner_exe