Callgrindmetrics
New metrics to be added to PR2, extracted from callgrind log files, before calling the CallgrindHandler, the following commands need to be executed.
#!/bin/sh
valgrindroot=/cvmfs/lhcbdev.cern.ch/tools/valgrind/3.12.0/x86_64-centos7
export PATH=${valgrindroot}/bin:${PATH}
export LD_LIBRARY_PATH=${valgrindroot}/lib/valgrind:${LD_LIBRARY_PATH}
# make sure no log files from previous runs are kept
rm -f callgrind.out.* *.log *.csv *.root
# remove these two lines once https://gitlab.cern.ch/lhcb/Brunel/merge_requests/169 is merged
lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future gaudirun.py --printsequence ./MiniBrunelHLT1.py | tee gaudi-sequence.log
lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future valgrind --tool=callgrind --dump-instr=yes --instr-atstart=no --cache-sim=yes --branch-sim=yes python $(lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future which gaudirun.py) ./MiniBrunelHLT1.py | tee gaudi-minibrunel.log
# uncomment these two lines once https://gitlab.cern.ch/lhcb/Brunel/merge_requests/169 is merged
#lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future gaudirun.py --printsequence ${BRUNEL_PROJECT_ROOT}/Rec/Brunel/options/MiniBrunelHLT1.py > gaudi-sequence.log
#lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future valgrind --tool=callgrind --dump-instr=yes --instr-atstart=no --cache-sim=yes --branch-sim=yes python $(lb-run --nightly-cvmfs --nightly=lhcb-future Brunel/future which gaudirun.py) ${BRUNEL_PROJECT_ROOT}/Rec/Brunel/options/MiniBrunelHLT1.py | tee gaudi-minibrunel.log
callgrind_log=`ls -tr callgrind.out.*.1 | tail -1`
callgrind_annotate --inclusive=yes ${callgrind_log} > ${callgrind_log}.anno
Note this merge request depends on having lhcb/Brunel!169 (merged) merged in Brunel, remove the third and uncomment the fourth paragraph once the merge request is done.
As long as this merge request is not in, one can use a local options file with
from Configurables import MiniBrunel
mbrunel = MiniBrunel()
mbrunel.EvtMax = 20
mbrunel.MaxAlgosInFlight = 2
mbrunel.ThreadPoolSize = 2
mbrunel.EventSlots = 2
mbrunel.Profile = True
mbrunel.HLT1Only = True
mbrunel.EnableHive = True