| The Gaudi Framework v29r0 (ff2e7097)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

GaudiProfiling/doc/intelprofiler.md
Go to the documentation of this file.
1 Gaudi Intel Profiler {#profiling-intel}
2 ===============================================================================
3
4 Auditor for profilng Gaudi jobs.
5 Based on [Intel® VTune™ Amplifier XE ][amplifier].
6
7
8
9
10 Unless IntelProfiler doesn't pushed to Gaudi source repository (svn) and you
11 cann't use getpack command, you need to compile package by yourself at lxplus
12 (on whenever cern afs is accesible and we can link it with intel amplifier
13 static library):
14
15 [A video guide to installing profiler package][video].
16
17 [amplifier]: http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/
18 [video]: http://youtu.be/h9tx00MGZTQ
19
20
21
22 Run
23 --------------------------------------------------------------------------------
24
25 (For full project example see [IntelProfilerExample][example] project).
26
27 ### Change Options File
28
29 Simple example of using IntelProfilerAuditor configurables:
30
31 ~~~~~~~~{.py}
32 #!/usr/bin/env gaudirun.py
33 from Configurables import IntelProfilerAuditor
34 #...
35 profiler = IntelProfilerAuditor()
36 profiler.OutputLevel = DEBUG
37 # We can skip some events
38 profiler.StartFromEventN = 100
39 profiler.StopAtEventN = 500
40 # Sequence which we need to profile. If empty, we profile all algorithms
41 profiler.IncludeAlgorithms = ["TopSequence"]
42 AuditorSvc().Auditors += [profiler]
43 ApplicationMgr().AuditAlgorithms = True
44 ~~~~~~~~
45
46 ### Setup Intel Environment
47
48 ~~~~~~~~{.sh}
49 $> . /afs/cern.ch/sw/IntelSoftware/linux/all-setup.sh
50 ~~~~~~~~
51
52 The script change environment variables:
53
54 * update `PATH`.
55 * set `INTEL_LICENSE_FILE`.
56
57 ### Collect Profiling Information
58 ~~~~~~~~{.sh}
59 $> intelprofiler -o ~/profiler myoptions.py
60 ~~~~~~~~
61
62 , where ```~/profiler``` is a directorory where a profiling database will be
63 stored. After the each run of a profiling job you will get directories
64 like ~/profiler/r000hs, ~/profiler/r0001hs, ~/profiler/r_RunNumber_hs.
65
66 If script could not find intel `amplxe-cl` command,
67 it will try to setup intel environment (see previous section).
68
69 * P.S. At lxplus during the profiling you can see the following messages:
70
71 ```
72 sh: lsmod: command not found
73 ERROR: ld.so: object '/$LIB/snoopy.so' from /etc/ld.so.preload cannot be preloaded: ignored.
74 ERROR: ld.so: object '/$LIB/snoopy.so' from /etc/ld.so.preload cannot be preloaded: ignored.
75 ```
76 You can ignore it.
77
78 Analyze
79 --------------------------------------------------------------------------------
80 ### With GUI
81
82 (setup intel environment)
83
84 ~~~~~~~~{.sh}
85 $> amplxe-gui ~/profiler/r000hs
86 ~~~~~~~~
87
88 An argument is a path to profiling database.
89
90 ### From Command Line
91
92 ~~~~~~~~{.sh}
93 $> amplxe-cl -report hotspots -r ~/profiler/r000hs
94 $> amplxe-cl -report hotspots -r ~/profiler/r000hs -group-by=task
95 $> amplxe-cl -report hotspots -r ~/profiler/r000hs -group-by=task-function
96 ~~~~~~~~
97
98 * [Intel Amplifier documentation][amplxe].
99 * [Documentation about group-by opiton][groupby].
100 * [How to interpret results][interpret].
101
102
103
104 [groupby]: http://software.intel.com/sites/products/documentation/hpc/amplifierxe/en-us/lin/ug_docs/olh/cli_ref/group-by.html#group-by
105 [amplxe]: http://software.intel.com/sites/products/documentation/hpc/amplifierxe/en-us/lin/ug_docs/index.htm
106 [interpret]: http://software.intel.com/sites/products/documentation/hpc/amplifierxe/en-us/lin/ug_docs/index.htm
107 [example]: https://github.com/mazurov/IntelProfilerExample
108
109
110