Project

General

Profile

vector-GPU

Repository

Clone geant (vector prototype @CERN) and g4hpcbenchmarks (GPU prototype @FNAL)

git clone https://syjun@git.cern.ch/reps/geant vp
git clone git+ssh://p-g4hpcbenchmarks@cdcvs.fnal.gov/cvs/projects/g4hpcbenchmarks g4hpcbenchmarks

Setup compiler and root

setup gcc and root

export PATH=/usr/local/gcc4.8.2/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/gcc-4.8.2/lib:/usr/local/gcc-4.8.2/lib64:${LD_LIBRARY_PATH}
. /phihome/syjun/products/root_gcc482/bin/thisroot.sh
(root_gcc482 was install with ./configure --with-cc="/usr/local/gcc-4.8.2/bin/gcc" --with-cxx="/usr/local/gcc-4.8.2/bin/g++")

setup icc and root

source /opt/intel/bin/iccvars.[c]sh intel64
. /phihome/syjun/products/root_icc/bin/thisroot.sh

for phi, use the GNU cross compiler

/usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc
/usr/linux-k1om-4.7/bin/x86_64-k1om-linux-g++

Build and run VP

set envs for vp (with geant4.10.0 compiled with gcc 4.8.2)

export GEANTSYS=/phihome/syjun/work/vp
cd $GEANTSYS
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER="/usr/local/gcc-4.8.2/bin/g++" \
      -DCMAKE_C_COMPILER="/usr/local/gcc-4.8.2/bin/gcc" \
      -DGeant4_DIR=/phihome/syjun/pbs/build/g4gcc.10.0/geant4.10.0-build ..
make -j4

run vp executable

export PATH=$PATH:${GEANTSYS}/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GEANTSYS}/lib
source /phihome/syjun/pbs/build/g4gcc.10.0/SimplifiedCalo/setenv.sh

cd ${GEANTSYS}/tabxsec/macros
tabxsec -s 1 -e 10 -Z 5 -n 10 -x tabxsec.in >& log.log &

vector

Build Vc

download tarball from http://code.compeng.uni-frankfurt.de/projects/vc
build the Vc library

tar -xzf Vc-0.7.3.tar.gz
mkdir Vc-0.7.3/build ; cd Vc-0.7.3/build
cmake -DCMAKE_INSTALL_PREFIX=/phihome/syjun/products/Vc-0.7.3 \
      -DBUILD_TESTING=OFF /phihome/syjun/products/Vc-0.7.3 \
      -DCMAKE_CXX_COMPILER=/usr/local/gcc-4.8.2/bin/g++ \
      -DCMAKE_C_COMPILER=/usr/local/gcc-4.8.2/bin/gcc ..
make -j4
make install
check whether Vc-0.7.3/lib/libVc.a is built

TBB

wget --no-check-certificate https://www.threadingbuildingblocks.org/sites/default/files/software_releases/linux/tbb42_20131118oss_lin.tgz
tar -xzf tbb42_20131118oss_lin.tgz

Install USolid

http://aidasoft.web.cern.ch/USolids

svn co https://svnsrv.desy.de/public/aidasoft/USolids/trunk USolids
cd USolids
mkdir build
cd build
. /phihome/syjun/products/root_gcc482/bin/thisroot.sh  (gcc 4.8.2 version of ROOT 5.34/10)
cmake -DGeant4_DIR=/phihome/syjun/pbs/build/g4gcc.10.0/geant4.10.0-build \
      -DCMAKE_CXX_COMPILER=/usr/local/gcc-4.8.2/bin/g++ \
      -DCMAKE_C_COMPILER=/usr/local/gcc-4.8.2/bin/gcc ..
make -j8
(move libusolids.a into ../lib)

Patched verion of ROOT

git clone https://github.com/sawenzel/ROOTGeantVProto.git gvroot
git checkout GeantVbranch
mkdir .build
cd .build
export GVROOTDIR=`pwd`
export ROOTSYS=$GVROOTDIR/.build
export VCDIR=/phihome/syjun/products/Vc-0.7.3
export PATH=/usr/local/gcc-4.8.2/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/gcc-4.8.2/lib64:/usr/local/gcc-4.8.2/lib:${LD_LIBRARY_PATH}
${GVROOTDIR}/configure linuxx8664gcc --disable-roofit --disable-tmva --disable-minuit2
make -j8 lib/libGeom.so
export GEANTVROOTPATH=`pwd`

With icc on mic

. ../compile_vc_icc.sh
export VCDIR=/phihome/syjun/products.icc/Vc-0.7.3
./configure linuxx8664icc  --with-ld=icpc
make -j8 lib/libGeom.so

build vecgeom

git clone https://github.com/sawenzel/VecGeom.git vecgeom (old)
git clone https://syjun@git.cern.ch/reps/VecGeom vecgeom (new)

cd vecgeom/prototypev1
cp ~lima/work/vecgeom/prototypev1/Makefile .
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/products/gcc/v4_8_1/Linux64bit+2.6-2.12/lib
export VCROOT=/phihome/syjun/products/Vc-0.7.3
export USOLIDSROOT=/phihome/syjun/products/USolids
export TBBROOT=/phihome/syjun/products/tbb42_20131118oss
[cmake ..]
make

With icc on mic

CXX=icc
CXX_OPT=-g -Ofast -finline-limit=10000000 -xavx 
CXX_FLAGS=-fabi-version=6 -m64 -std=c++11 
CXX_FLAGS+=${CXX_OPT}