Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Advanced Modular Software Performance Monitoring
Search
Sasha Mazurov
May 30, 2012
Technology
1
240
Advanced Modular Software Performance Monitoring
CPU profiling with Intel® VTune™ Amplifier XE
Sasha Mazurov
May 30, 2012
Tweet
Share
More Decks by Sasha Mazurov
See All by Sasha Mazurov
L1Calo Offline Software Status
mazurov
0
74
Performance and Regression tests for Simulation
mazurov
0
75
About v2
mazurov
0
67
L1Calo Offline Software Status
mazurov
0
99
L1Calo Offline Software Status
mazurov
0
98
LHCbPR V2
mazurov
0
130
Paper approval
mazurov
0
62
Conventions' Publications
mazurov
0
59
Ph.D final exam
mazurov
0
110
Other Decks in Technology
See All in Technology
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
340
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
190
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
Language Update: Java
skrb
2
290
研究開発と製品開発、両利きのロボティクス
youtalk
1
510
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
440
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
150
テストを軸にした生き残り術
kworkdev
PRO
0
190
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Cult of Friendly URLs
andyhume
79
6.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Faster Mobile Websites
deanohume
309
31k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
Advanced Modular Software Performance Monitoring CPU profiling with Intel® VTune™
Amplifier XE Alexander Mazurov Ferrara University, CERN
2 I. Event Processing Software II. Profilers III. Intel® VTune™
Amplifier XE IV. Gaudi Framework V. Gaudi Intel Profiler Auditor VI. Profiling examples
3 Physics events The Higgs Boson Simulation * Trigger *
Analysis I. Event Processing Software
4 Detector events Events to storage 106 events/sec 4500 events/sec
LHCb High Level Trigger (HLT) Software Moore
5 II. Profilers Collect information related to how an
application or system perform.
6 Measure frequency and duration of functions calls and/or code
instructions. CPU Profiler
7 Profiling Techniques - Hardware counters - Instrumenting the code
8 Hardware counters Exploit hardware performance counters from Performance Monitoring
Unit (PMU) Counters: - Translation lookaside buffer (TLB) misses - Cache misses - Stall cycles - Memory access latency - ... Perfmon2 * Intel VTune Amplifier
9 Instrumenting the code - Statically: * Change code manually
/ automatically * Compiler assisted (gcc -pg) - Dynamically (at runtime): * Change code in runtime - Valgrind - Google Performance Tools - Intel VTune Amplifier
10 III. VTune™ Amplifier XE Performance Profiling Tool - x86
(32 and 64-bit) - GUI and CLI
11 VTune™ Features Runtime instrumenting profiler - User-mode sampling -
Hardware-based sampling - Concurrency and locks and waits analysis - Threading timeline - Attach to a running process - Source view
12 1) Interupts a process 2) Collect samples of all
active instruction addresses 3) Restore a call sequence upon each sample. How user-mode sampling works?
13 User-mode analysis types - Hotspots - Concurrency - Locks
and Waits
14 User-mode sampling Hotspots analysis:
15 Group results
16 Call Stack
17 Filter by timeline
18 CPU time by code line Debug mode (-g)
19 User-mode sampling is a statistical method and does not
provide a 100% accurate results. Accuracy depends on: - Duration of the collection - Speed of processor - Amount of software activity - Sampling interval * recommended value is 10 ms * profiling is only 5% slower Sampling Accuracy
20 Integrating VTune™ Amplifier to Event Processing Framework
21 IV. Gaudi Event processing framework Moore Trigger Gauss Simulation
Brunel Reconstruction Online Monitoring and commissioning DaVinci Physics analysis
22 Gaudi Architecture Algorithms * Services * Tools
23 Moore Event Loop Hlt1DiMuonHighMassFilterSequence Hlt1DiMuonHighMassStreamer FastVeloHlt MuonRec Velo2CandidatesDiMuonHighMass GECLooseUnit
createITLiteClusters createVeloLiteClusters Algorithms Sequence How to profile algorithms?
24 V. Gaudi Intel Profiling Auditor VTune™ User API +
Gaudi Auditors API
25 VTune™ User API - Start/Pause profiling - Mark profiling
regions
26 Gaudi Auditors API Algorithm Start event End
event Callback functions
27 Algorithms profiling (I) CPU time per sequence branch
28 Algorithms profiling (II)
29 Gaudi configuration from Configurables import IntelProfilerAuditor profiler = IntelProfilerAuditor()
profiler.StartFromEventN = 5000 profiler.StopAtEventN = 15000 AuditorSvc().Auditors += [profiler]
30 Run: $> intelprofiler -o /collected/data job.py Analyze (GUI): $>
amplxe-gui /collecter/data/r001hs Analyze (CLI): $> amplxe-cl -reports hotspots -r /collecter/data/r001hs
31 VI. Profiling examples 1. Memory allocation functions 2. Measuring
profiling accuracy 3. Custom reports
32 1. Memory allocation functions operatornew from libstdc++ library: tc_new
from tcmalloc library: tc_new uses twice less time then operatornew
33 2. Measuring profiling accuracy Intel Profiling Auditor vs .
Timing Auditor Measures the absolute time of algorithm's run 1000 events
34 3. Custom reports Build reports using CSV files exported
from VTune Amplifier
35 Conclusions Intel® VTune™ Amplifier XE: + Various analysis types
and reports + Rich User API + Reasonable overhead time