From 58dbfc9be6e6d4e60227c46acbc8d75536b8e550 Mon Sep 17 00:00:00 2001 From: Guillaume Raffy Date: Thu, 9 Jun 2022 08:54:50 +0200 Subject: [PATCH] added ifort build to hibridon's benchmark --- .ipr/hibench.job | 8 +++++ .ipr/launch-perf-jobs.sh | 68 ++++++++++++++++++++++++++++++---------- 2 files changed, 60 insertions(+), 16 deletions(-) diff --git a/.ipr/hibench.job b/.ipr/hibench.job index 0838464..ea3bb58 100644 --- a/.ipr/hibench.job +++ b/.ipr/hibench.job @@ -7,6 +7,7 @@ git_pass_file="$3" # eg "$HOME/.github/personal_access_tokens/bench.hibridon.clu code_version="$4" # git branch id or commit id eg : 'a3bed1c3ccfbca572003020d3e3d3b1ff3934fad' cmake_options="$5" # eg '-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON' benchmark_command="$6" # eg 'ctest -L ^arch4_quick$' +env_vars_bash_commands="$7" # defines extra environment variables prior to launch starbench. eg "export MKLROOT=/opt/intel/compilers_and_libraries_2020.1.217/linux/mkl" cmake_path='/opt/cmake/cmake-3.23.0/bin/cmake' @@ -37,6 +38,13 @@ EOF chmod a+x "$starbench_path" +# set environment variables + +echo "env_vars_bash_commands=$env_vars_bash_commands" +eval $env_vars_bash_commands + +# launch starbench + command="${starbench_path}" command="${command} --git-repos-url ${git_repos_url}" command="${command} --git-user ${git_user}" diff --git a/.ipr/launch-perf-jobs.sh b/.ipr/launch-perf-jobs.sh index c976ef0..43ce50a 100755 --- a/.ipr/launch-perf-jobs.sh +++ b/.ipr/launch-perf-jobs.sh @@ -35,6 +35,7 @@ function launch_job_for_host_group() { local hibridon_version="$1" # the version of hibridon to test, in the form of a valid commit number eg 'a3bed1c3ccfbca572003020d3e3d3b1ff3934fad' local host_group_id="$2" # eg 'xeon_gold_6140' + local compiler_id="$3" # eg 'gfortran' 'ifort' local hosts='' local num_cores='' case "${host_group_id}" in @@ -163,9 +164,29 @@ function launch_job_for_host_group() git_repos_url="https://github.com/hibridon/hibridon" git_user='g-raffy' # os.environ['HIBRIDON_REPOS_USER'] git_pass_file="$HOME/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" - cmake_options='-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON' + cmake_options='' + cmake_options="${cmake_options} -DCMAKE_BUILD_TYPE=Release" # build in release mode for highest performance + cmake_options="${cmake_options} -DBUILD_TESTING=ON" # enable hibridon tests + benchmark_command="ctest --output-on-failure -L ^${benchmark_test}\$" + local env_vars_bash_commands='' + case "${compiler_id}" in + 'ifort') + env_vars_bash_commands='module load compilers/ifort/latest' + cmake_options="${cmake_options} -DCMAKE_Fortran_COMPILER=ifort" # use intel fortran compiler + cmake_options="${cmake_options} -DBLA_VENDOR=Intel10_64lp" # use 64 bits intel mkl with multithreading + ;; + 'gfortran') + env_vars_bash_commands='' + cmake_options="${cmake_options} -DCMAKE_Fortran_COMPILER=gfortran" # use gfortran compiler + ;; + *) + error "unhandled compiler_id : ${compiler_id}" + exit 1 + ;; + esac + # cat $SCRIPT_DIR/hibench.job | sed "s~~$(cat $SCRIPT_DIR/starbench.py)~" > /tmp/hibench.job cat $SCRIPT_DIR/hibench.job | substitute_TAG_with_FILEcontents '' "$SCRIPT_DIR/starbench.py" > /tmp/hibench.job chmod a+x /tmp/hibench.job @@ -173,10 +194,10 @@ function launch_job_for_host_group() local hibench_root_dir="$GLOBAL_WORK_DIR/graffy/hibridon/benchmarks/starbench" mkdir -p "${hibench_root_dir}" - local this_bench_dir="${hibench_root_dir}/${hibridon_version}/${benchmark_test}/${host_group_id}/$(date --iso-8601=seconds)" + local this_bench_dir="${hibench_root_dir}/${hibridon_version}/${benchmark_test}/${host_group_id}/${compiler_id}" mkdir -p "${this_bench_dir}" - command="/tmp/hibench.job \"${git_repos_url}\" \"${git_user}\" \"${git_pass_file}\" \"${hibridon_version}\" \"${cmake_options}\" \"${benchmark_command}\"" + command="/tmp/hibench.job \"${git_repos_url}\" \"${git_user}\" \"${git_pass_file}\" \"${hibridon_version}\" \"${cmake_options}\" \"${benchmark_command}\" \"${env_vars_bash_commands}\"" echo "command = $command" # eval $command @@ -200,19 +221,34 @@ function launch_job_for_host_group() function launch_perf_jobs() { local hibridon_version="$1" # the version of hibridon to test, in the form of a valid commit number eg 'a3bed1c3ccfbca572003020d3e3d3b1ff3934fad' - - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_x5550' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_x5650' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_e5-2660' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_e5-2660v2' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_e5-2660v4' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6140' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6154' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_5222' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6226r' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6240r' - launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6248r' - launch_job_for_host_group "${hibridon_version}" 'amd_epyc_7282' + + local compilers='' + compilers="${compilers} gfortran" + compilers="${compilers} ifort" + + local host_groups='' + host_groups="${host_groups} intel_xeon_x5550" + host_groups="${host_groups} intel_xeon_x5650" + host_groups="${host_groups} intel_xeon_e5-2660" + host_groups="${host_groups} intel_xeon_e5-2660v2" + host_groups="${host_groups} intel_xeon_e5-2660v4" + host_groups="${host_groups} intel_xeon_gold_6140" + host_groups="${host_groups} intel_xeon_gold_6154" + host_groups="${host_groups} intel_xeon_gold_5222" + host_groups="${host_groups} intel_xeon_gold_6226r" + host_groups="${host_groups} intel_xeon_gold_6240r" + host_groups="${host_groups} intel_xeon_gold_6248r" + host_groups="${host_groups} amd_epyc_7282" + + local compiler='' + local host_group='' + for compiler in ${compilers} + do + for host_group in ${host_groups} + do + launch_job_for_host_group "${hibridon_version}" "${host_group}" "${compiler}" + done + done #launch_job_for_host_group "${hibridon_version}" 'intel_xeon_gold_6140' }