edit · history · print

Installation

Anyway, my current actions are:

 rpm -ivh http://linuxsoft.cern.ch/cern/slc4X/i386/SRPMS/kernel-2.6.9-22.EL.src.rpm
 cd /usr/src/redhat/SPECS
 rpmbuild -bp --target=i686 kernel-2.6.spec
 cp -a /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 /usr/src
  • cd to /usr/src/linux-2.6.9 and apply perfctr patch:
 [root@wn-a-25 linux-2.6.9]# /root/perfctr-2.6.27/update-kernel -p 2.6.9-22.EL-redhat

it works well (also --test works well)

  • I then modify .config a bit:
 CONFIG_MODULES=y and CONFIG_MODVERSIONS=y are left as is
  • Changed target machine to Oberon. Added SMP support.
  • I also added
 # perfctr
 CONFIG_PERFCTR=y
 CONFIG_PERFCTR_VIRTUAL=y
 CONFIG_PERFCTR_GLOBAL=y
  • make oldconfig suggested to add some more options (perfctr manual is missing them):
 # CONFIG_PERFCTR_DEBUG is not set
 # CONFIG_PERFCTR_INIT_TESTS is not set
  • The resulting .config file.
  • Building kernel:
 make clean
 make bzImage
 make modules
 make modules_install
 make install
  • Side note: if building on a SMP machine, make -jN (N - number of cores) is a parallel version of building.
  • reinstall grub: grub-install /dev/sdb
  • reboot

Tools

On slc4 /dev/perfctr was already existing after the reboot, so I suppose it's a static device.

To build library:

 make
 make PREFIX=/home/cms install

Installing PyReleaseValidation

Wiki instructions

 CVSROOT=:pserver:anonymous@cmscvs.cern.ch:/cvs_server/repositories/CMSSW
 cvs login (98passwd)
 cvs co Configuration/PyReleaseValidation

Installing PerfAnalysis

 cvs co -d PerfAnalysis UserCode/Tuura/PerfAnalysis

Used environment

 export CMSSW_P=/home/cms/CMSSW_1_5_2
 export PATH=$PATH:$CMSSW_P/src/Configuration/PyReleaseValidation/data
 export PATH=$PATH:/home/cms/perf/bin/:$CMSSW_P/src/PerfAnalysis
 . /opt/cms/cmsset_default.sh
 cd /home/cms/CMSSW_1_5_2
 eval `scramv1 runtime -sh`

Sample run

 cmsDriver.py QCD --prefix "perfex `perfctr-amd 1`"

Running analysis

Lassi wrote a nice one-liner for profiling things:

  • Example with one process:
 (dir=Z-PERFCTR-MU-ALL;
     for sample in `seq 1 11`; do
    (echo "Run started at `date +%s` (`date`)"
     for f in 'B_JETS'; do
      basef=$f-MU-default-$sample
      perfexout=$dir/perf-$basef
      perfexopt="$(perfctr-amd $sample ${perfexout}-def.txt)"
      (set -x; (time cmsDriver.py MU+ -e 10 --prefix "perfex -o ${perfexout}-out.txt $perfexopt" ) >& $dir/out-$basef.txt
 </dev/null)
     done
     echo "Run ended at `date +%s` (`date`)"
    ) >& $dir/all-out-$sample.txt
  done) >& Z-PERFCTR-MU-ALL/all-out.txt </dev/null & 
  • Example with 4 processes:
 (dir=Z-PERFCTR-5;
     for sample in `seq 1 11`; do
    (echo "Run started at `date +%s` (`date`)"
     for f in 'B_JETS'; do
      [ $(ls "$f"_*SIM.root 2>/dev/null | wc -l) = 1 ] || continue
      basef=$f-DIGI-default-$sample
      perfexout=$dir/perf-$basef
      perfexopt="$(perfctr-amd $sample ${perfexout}-def.txt)"
      (set -x; (time cmsDriver.py "$f" -s DIGI --prefix "perfex -o ${perfexout}-out.txt $perfexopt" ) >& $dir/out-$basef.txt
 </dev/null)
     done
     echo "Run ended at `date +%s` (`date`)"
    ) >& $dir/all-reco-out-$sample.txt
  done) >& Z-PERFCTR-5/all-out.txt </dev/null & 

CPU specs

 dmesg | grep CPU
 cat /proc/cpuinfo
 http://ezix.org/project/wiki/HardwareLiSter

General

  • Dual Core AMD Opteron(tm) Processor 275
  • Cores per cpu: 2
  • Total cores: 4
  • CPU speed: 2194.512 MHz

L1 Instruction cache

  • Size:
  • Line size: 64B
  • ALU access size:
  • Sets
edit · history · print
Page last modified on July 31, 2007, at 10:59 AM