Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-02-21 23:14:25

0001 #! /bin/bash
0002 
0003 ##### Command Line Input #####
0004 suite=${1:-"forPR"} # which set of benchmarks to run: full, forPR, forConf
0005 useARCH=${2:-0}  # 0 phi3 only, 1 lnx only, 2 phi3 + lnx, 3 phi123, 4 phi123 + lnx
0006 lnxuser=${3:-${USER}}
0007 
0008 ##### Initialize Benchmarks #####
0009 source xeon_scripts/common-variables.sh ${suite} ${useARCH} ${lnxuser}
0010 source xeon_scripts/init-env.sh
0011 make distclean
0012 
0013 ##### Check Settings #####
0014 assert_settings=true
0015 echo "--------Showing System Settings--------"
0016 echo "turbo status: "$(cat /sys/devices/system/cpu/intel_pstate/no_turbo)
0017 echo "scaling governor setting: "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
0018 echo "--------End System Settings ------------"
0019 if ${assert_settings}
0020 then
0021 echo "Ensuring correct settings"
0022 if [[ $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor) != "performance" ]]
0023 then
0024 echo "performance mode is OFF. Exiting"
0025 exit 1
0026 fi
0027 if [[ $(cat /sys/devices/system/cpu/intel_pstate/no_turbo) == "0" ]]
0028 then
0029 echo "Turbo is ON. Exiting"
0030 exit 1
0031 fi
0032 fi
0033 sleep 3 ## so you can see the settings
0034 
0035 ##### Launch Tests #####
0036 if [[ ${useARCH} -eq 1 ]] || [[ ${useARCH} -eq 2 ]] || [[ ${useARCH} -eq 4 ]]
0037 then
0038 echo "Tar and send to LNX7188"
0039 ./xeon_scripts/tarAndSendToRemote.sh LNX-G ${suite} ${useARCH} ${lnxuser}
0040 if [ $? -eq 1 ]; then
0041 echo "lnx7188 has bad settings. Please fix them and try again"
0042 exit 1
0043 fi
0044 
0045 echo "Run benchmarking on LNX7188 concurrently with SKL-SP benchmarks" 
0046 ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build-remote.sh LNX-G ${suite} ${useARCH} ${lnxuser} >& benchmark_lnx-g_dump.txt &
0047 
0048 echo "Tar and send to LNX4108"
0049 ./xeon_scripts/tarAndSendToRemote.sh LNX-S ${suite} ${useARCH} ${lnxuser}
0050 if [ $? -eq 1 ]; then
0051 echo "lnx4108 has bad settings. Please fix them and try again"
0052 exit 1
0053 fi
0054 
0055 echo "Run benchmarking on LNX4108 concurrently with SKL-SP benchmarks" 
0056 ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build-remote.sh LNX-S ${suite} ${useARCH} ${lnxuser} >& benchmark_lnx-s_dump.txt &
0057 fi
0058 
0059 if [[ ${useARCH} -eq 3 ]] || [[ ${useARCH} -eq 4 ]]
0060 then
0061 
0062 echo "Tar and send to KNL"
0063 ./xeon_scripts/tarAndSendToRemote.sh KNL ${suite} ${useARCH} ${lnxuser}
0064 if [ $? -eq 1 ]; then
0065 echo "KNL has bad settings. Please fix them and try again"
0066 exit 1
0067 fi
0068 
0069 echo "Run benchmarking on KNL concurrently with SKL-SP benchmarks" 
0070 ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build-remote.sh KNL ${suite} ${useARCH} ${lnxuser} >& benchmark_knl_dump.txt &
0071 
0072 echo "Tar and send to SNB"
0073 ./xeon_scripts/tarAndSendToRemote.sh SNB ${suite} ${useARCH} ${lnxuser}
0074 if [ $? -eq 1 ]; then
0075 echo "SNB has bad settings. Please fix them and try again"
0076 exit 1
0077 fi
0078 
0079 echo "Run benchmarking on SNB concurrently with SKL-SP benchmarks" 
0080 ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build-remote.sh SNB ${suite} ${useARCH} ${lnxuser} >& benchmark_snb_dump.txt &
0081 fi
0082 
0083 if [[ ${useARCH} -eq 0 ]] || [[ ${useARCH} -eq 2 ]] || [[ ${useARCH} -eq 3 ]] || [[ ${useARCH} -eq 4 ]]
0084 then
0085 echo "Run benchmarking on SKL-SP"
0086 ./xeon_scripts/benchmark-cmssw-ttbar-fulldet-build.sh SKL-SP ${suite} ${useARCH} ${lnxuser} 
0087 fi
0088 
0089 ##### Validation tests #####
0090 echo "Running ROOT based validation"
0091 ./val_scripts/validation-cmssw-benchmarks.sh ${suite} --mtv-like-val
0092 
0093 if [[ ${useARCH} -eq 1 ]] || [[ ${useARCH} -eq 2 ]]
0094 then
0095 echo "Waiting for LNX-G and LNX-S"
0096 elif [[ ${useARCH} -eq 3 ]] 
0097 then
0098 echo "Waiting for KNL and SNB"
0099 elif  [[ ${useARCH} -eq 4 ]]
0100 then 
0101 echo "Waiting for LNX-G, LNX-S, KNL, and SNB"
0102 fi
0103 wait
0104 
0105 ##### Benchmark Plots #####
0106 echo "Producing benchmarking plots"
0107 ./plotting/benchmarkPlots.sh ${suite} ${useARCH} ${lnxuser} 
0108 
0109 ##### Plots from Text Files #####
0110 echo "Producing plots from text files"
0111 ./plotting/textDumpPlots.sh ${suite} ${useARCH} ${lnxuser} 
0112 
0113 ##### Final cleanup #####
0114 make distclean
0115 
0116 ##### Final message #####
0117 echo "Finished benchmarking and validation suite!"