Gaudi CPU profiler based on Intel Amplifier
C++ Shell Python
Switch branches/tags
Nothing to show

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.


  • Setup your project environment. For example,

    $> SetupProject Gaudi v22r5 --build-env
  • Clone the project from my github repository:

    $> cd ~/cmtuser/Gaudi_v22r5
    $> git clone git://
  • Compile and set environment (to setup path(s) into InstallArea):

     $> make -j
     $> SetupProject Gaudi v22r5


(For full project example see IntelProfilerExample project).

Change Options File

Simple example of using IntelProfilerAuditor configurables:

from Configurables import IntelProfilerAuditor
profiler = IntelProfilerAuditor()
profiler.OutputLevel = DEBUG
# We can skip some events
profiler.StartFromEventN = 100
profiler.StopAtEventN = 500
# Sequence which we need to profile. If empty, we profile all algorithms
profiler.IncludeAlgorithms = ["TopSequence"]
AuditorSvc().Auditors +=  [profiler]
ApplicationMgr().AuditAlgorithms = True

For convinience your options file should be executable and include #!/usr/bin/env at the begining of file.

Setup Intel Environment

$> . /afs/

The script change environment variables:

  • update PATH.

Collect Profiling Information

$> intelprofiler -o ~/profiler

, 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:

    sh: lsmod: command not found
    ERROR: object '/$LIB/' from /etc/ cannot be preloaded: ignored.
    ERROR: object '/$LIB/' from /etc/ cannot be preloaded: ignored.

    You can ignore it.


With GUI

(setup intel environment)

$> amplxe-gui ~/profiler/r000hs

An argument is a path to profiling database.

From Command Line

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