GaudiProfiling/doc/intelprofiler.md
Go to the documentation of this file.
1 Gaudi Intel Profiler
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