The Gaudi Framework  v29r0 (ff2e7097)
Gaudi Intel Profiler

Auditor for profilng Gaudi jobs. Based on Intel® VTune™ Amplifier XE.

Unless IntelProfiler doesn't pushed to Gaudi source repository (svn) and you cann't use getpack command, you need to compile package by yourself at lxplus (on whenever cern afs is accesible and we can link it with intel amplifier static library):

A video guide to installing profiler package.

Run

(For full project example see IntelProfilerExample project).

Change Options File

Simple example of using IntelProfilerAuditor configurables:

1 #!/usr/bin/env gaudirun.py
2 from Configurables import IntelProfilerAuditor
3 #...
4 profiler = IntelProfilerAuditor()
5 profiler.OutputLevel = DEBUG
6 # We can skip some events
7 profiler.StartFromEventN = 100
8 profiler.StopAtEventN = 500
9 # Sequence which we need to profile. If empty, we profile all algorithms
10 profiler.IncludeAlgorithms = ["TopSequence"]
11 AuditorSvc().Auditors += [profiler]
12 ApplicationMgr().AuditAlgorithms = True

Setup Intel Environment

1 $> . /afs/cern.ch/sw/IntelSoftware/linux/all-setup.sh

The script change environment variables:

  • update PATH.
  • set INTEL_LICENSE_FILE.

### Collect Profiling Information

1 $> intelprofiler -o ~/profiler myoptions.py

, where ~/profiler is a directorory where a profiling database will be stored. After the each run of a profiling job you will get directories like ~/profiler/r000hs, ~/profiler/r0001hs, ~/profiler/r_RunNumber_hs.

If script could not find intel amplxe-cl command, it will try to setup intel environment (see previous section).

  • P.S. At lxplus during the profiling you can see the following messages:
1 sh: lsmod: command not found
2 ERROR: ld.so: object '/$LIB/snoopy.so' from /etc/ld.so.preload cannot be preloaded: ignored.
3 ERROR: ld.so: object '/$LIB/snoopy.so' from /etc/ld.so.preload cannot be preloaded: ignored.

You can ignore it.

Analyze

With GUI

(setup intel environment)

1 $> amplxe-gui ~/profiler/r000hs

An argument is a path to profiling database.

From Command Line

1 $> amplxe-cl -report hotspots -r ~/profiler/r000hs
2 $> amplxe-cl -report hotspots -r ~/profiler/r000hs -group-by=task
3 $> amplxe-cl -report hotspots -r ~/profiler/r000hs -group-by=task-function