Add qed bench run script and singularity container
This commit is contained in:
63
experiments/CUDA_container.def
Normal file
63
experiments/CUDA_container.def
Normal file
@ -0,0 +1,63 @@
|
||||
Bootstrap: docker
|
||||
From: nvidia/cuda:12.3.1-devel-ubuntu20.04
|
||||
|
||||
%labels
|
||||
Requires CUDA driver 470.57+.
|
||||
|
||||
%environment
|
||||
export LANG=C
|
||||
|
||||
%runscript
|
||||
nvidia-smi
|
||||
./run.sh
|
||||
|
||||
%post
|
||||
. /.singularity.d/env/10-docker*.sh
|
||||
|
||||
apt-get update
|
||||
apt-get install -y pciutils
|
||||
DEBIAN_FRONTEND='noninteractive' apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' install build-essential cuda-compat-12-3 libibverbs-dev ibverbs-utils gcc wget git libcap2-bin
|
||||
apt-get -y autoremove; apt-get -y clean
|
||||
|
||||
cd /tmp
|
||||
|
||||
# install slurm
|
||||
: ${SLURM_VERSION:=17-02-11-1}
|
||||
wget https://github.com/SchedMD/slurm/archive/slurm-${SLURM_VERSION}.tar.gz
|
||||
tar -xf slurm-${SLURM_VERSION}.tar.gz
|
||||
cd slurm-slurm-${SLURM_VERSION}
|
||||
./configure --prefix=/usr/ --sysconfdir=/etc/slurm --localstatedir=/var --disable-debug
|
||||
make -C contribs/pmi2 -j$(nproc) install
|
||||
cd ..
|
||||
rm -rf slurm-*
|
||||
|
||||
# install julia
|
||||
cd ~
|
||||
wget https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.4-linux-x86_64.tar.gz
|
||||
tar zxvf julia-1.9.4-linux-x86_64.tar.gz
|
||||
mv julia-1.9.4/ /opt/julia-1.9.4
|
||||
#mkdir /usr/local/bin
|
||||
ln -s /opt/julia-1.9.4/bin/julia /usr/local/bin/julia
|
||||
|
||||
#Add nvidia driver paths to the environment variables
|
||||
echo "\n #Nvidia driver paths \n" >> /environment
|
||||
echo 'export PATH="/nvbin:$PATH"' >> /environment
|
||||
echo 'export LD_LIBRARY_PATH="/nvlib:$LD_LIBRARY_PATH"' >> /environment
|
||||
|
||||
#Add CUDA paths
|
||||
echo "\n #Cuda paths \n" >> /environment
|
||||
echo 'export CPATH="/usr/local/cuda/include:$CPATH"' >> /environment
|
||||
echo 'export PATH="/usr/local/cuda/bin:$PATH"' >> /environment
|
||||
echo 'export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"' >> /environment
|
||||
echo 'export CUDA_HOME="/usr/local/cuda"' >> /environment
|
||||
|
||||
# install likwid
|
||||
VERSION=5.3.0
|
||||
wget http://ftp.fau.de/pub/likwid/likwid-$VERSION.tar.gz
|
||||
tar -xaf likwid-$VERSION.tar.gz
|
||||
cd likwid-$VERSION
|
||||
# accessdaemon doesn't work because of permissions
|
||||
sed -i 's/ACCESSMODE = accessdaemon/ACCESSMODE = perf_event/g' config.mk
|
||||
make -j4
|
||||
make -j4 install
|
||||
echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' >> /environment
|
18
experiments/run.sh
Executable file
18
experiments/run.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
LOG_FILE="$SCRIPT_DIR/../julia.log"
|
||||
|
||||
cd $SCRIPT_DIR/..
|
||||
|
||||
echo "Initiating julia..."
|
||||
julia --project=./ -e 'using Pkg; Pkg.instantiate(); Pkg.add(url="https://github.com/QEDjl-project/QEDprocesses.jl/")' > $LOG_FILE 2>&1 || exit 1 # need current dev version of QEDprocesses
|
||||
julia -e 'using Pkg; Pkg.add("CSV"); Pkg.add("DataFrames"); Pkg.add("LIKWID"); Pkg.add("CUDA"); Pkg.add("Random")' >> $LOG_FILE 2>&1 || exit 1 # add requirements for the bench script
|
||||
|
||||
echo "Benchmarking..."
|
||||
|
||||
for i in {1..16}
|
||||
do
|
||||
echo "$i Threads"
|
||||
julia --project --threads=$i examples/qed_bench.jl >> $LOG_FILE 2>&1 || echo "-- Something went wrong, check logs --"
|
||||
done
|
Reference in New Issue
Block a user