Skip to content
Christos Psarras edited this page Nov 24, 2020 · 39 revisions

Welcome to the LAMP benchmark wiki!

Here I will document the versions of the languages / libraries / frameworks used, as well as their installation instructions.

Requirements

  • GNU GCC: 8.2.0
  • Intel MKL: 19.0
  • CMake: 3.16.4

Pre-configuration

Create a symbolic link ${HOME}/.zshrc.lamp pointing to scripts/lamp_env.zsh.

Armadillo

  • Version: 10.1.x
  • Old Version: 9.800.x

Create build directory and run:

git clone  git clone https://gitlab.com/conradsnicta/armadillo-code.git ${LOCAL_INSTALL_DIR}/src/armadillo
cd ${LOCAL_INSTALL_DIR}/src/armadillo && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${LOCAL_INSTALL_DIR}" ..
make install -j 48

Note: This is a template library. Compilation flags added in Makefile of experiments.

Eigen

  • Version: 3.3.8
  • Old Version: 3.3.7

Create build directory and run:

git clone https://gitlab.com/libeigen/eigen.git ${LOCAL_INSTALL_DIR}/src/eigen
cd ${LOCAL_INSTALL_DIR}/src/eigen && mkdir build && cd build
git checkout 3.3.8
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$LOCAL_INSTALL_DIR" ..
make install -j 48

Note: This is a template library. Compilation flags added in Makefile of experiments.

GNU Octave

  • Version: 5.2.0
  • Old Version: 5.1.0
wget http://mirrors.kernel.org/gnu/octave/octave-5.2.0.tar.gz -qO- | tar xzvf - -C ${LOCAL_INSTALL_DIR}/src
cd ${LOCAL_INSTALL_DIR}/src/octave-5.2.0
#module switch gcc/8 gcc/7
export CC=gcc
export CXX=g++
export F77=gfortran
export CFLAGS="-O3 -march=native -fPIC -std=c99 -DMKL_LP64 -DM_PI=3.1415926535897932384"
export FFLAGS="-O3 -fPIC"
export CPPFLAGS="-march=native -I$MKLROOT/include -I$MKLROOT/include/fftw"
export LDFLAGS="-L$MKLROOT/lib/intel64 -L$MKLROOT/../compiler/lib/intel64"
export LD_LIBRARY_PATH="$MKLROOT/lib/intel64:$MKLROOT/../compiler/lib/intel64:$LD_LIBRARY_PATH"

export MKL="-fopenmp -m64 -I$MKLROOT/include -L$MKLROOT/lib/intel64 -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread -lm"
configure --prefix=${LOCAL_INSTALL_DIR} \
          --with-blas="${MKL}" \
          --with-lapack="${MKL}" \
          --with-fftw3="${MKL}" \
          --with-fftw3f="${MKL}" \
          --disable-java
make -j 48
make check -j 48
make install

R

  • Version: 4.0.3
  • Old Version: 3.6.1
wget https://cran.r-project.org/src/base/R-4/R-4.0.3.tar.gz -qO- | tar xzvf - -C ${LOCAL_INSTALL_DIR}/src
cd ${LOCAL_INSTALL_DIR}/src/R-4.0.3

Prerequisites

sudo apt install build-essential\
 zlib1g-dev                     \
 libbz2-dev                     \
 liblzma-dev                    \
 libpcre2-dev                   \
 libreadline-dev                \
 libpcre3-dev                   \
 libcurl4-openssl-dev

Install

# source ${MKLROOT}/bin/mklvars.sh intel64
export MKL="-Wl,--no-as-needed -lmkl_gf_lp64 -Wl,--start-group -lmkl_gnu_thread  -lmkl_core  -Wl,--end-group -fopenmp  -ldl -lpthread -lm"
./configure --with-blas="$MKL" --with-lapack --prefix=${LOCAL_INSTALL_DIR} -with-x=no
make -j 48
make install

Post Install

Create file ${HOME}/.Rprofile with contents

cat(".Rprofile: Setting UK repository\n")
r = getOption("repos") # hard code the UK repo for CRAN
r["CRAN"] = "http://cran.uk.r-project.org"
options(repos = r)
rm(r)

Then, launch R for the first time and run:

install.packages('sets')

MATLAB

  • Version: 2019a

Julia

  • Version: 1.5.2
  • Old Version: 1.1.0
git clone https://github.com/JuliaLang/julia.git ${LOCAL_INSTALL_DIR}/julia
cd ${LOCAL_INSTALL_DIR}/julia
git checkout v1.5.2
echo "USE_INTEL_MKL = 1" > ${LOCAL_INSTALL_DIR}/julia/Make.user
make -j 48

Extras

RWTH Node 72

SuperLU