1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University...
-
Upload
hillary-oconnor -
Category
Documents
-
view
220 -
download
0
description
Transcript of 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University...
![Page 1: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/1.jpg)
1
How to do MultithreadingFirst step: Sampling and Hotspot hunting
2010. 3. 19Myongji University
Sugwon Hong
1
![Page 2: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/2.jpg)
2
Benefits of Threads Threads are intended to improve
performance and responsiveness of a program.
Quick turnaroud time Completing a single job in the smallest
amount of time possible High throughput
Finishing the most tasks in a fixed amount of time
![Page 3: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/3.jpg)
3
Risks of Threads But if they are not used properly, they can
lead to degrade performance, and sometimes unpredictable behavior,
and error conditions Data race (race conditions) Deadlock
And other extra burdens. Code complexity Portability issues Testing and debugging difficulty
![Page 4: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/4.jpg)
4
Common questions for multithreading Where to thread? Is it worth threading a selected region? What should the expected speedup be? Will we meet the expected performance? Can we correct any error while threading? How long would it take to thread? How much re-design/effort is required? Will it scale as more threads/data are
added? Which threading model to use?
![Page 5: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/5.jpg)
5
Starting point: Measurement Before answering all questions, we just
try to start the first step. Measurement may give us plenty of
information about where we start. Collect data which provide you with
CPU hotspots, I/O hotspots, and the degree of parallelism in your code while the program is running.
Measure before/during/after threading.
![Page 6: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/6.jpg)
6
Performance tools To do measurement, we need proper
performance tools. The Intel VTune Performance Analyzer, along
with the Thread Profiler, identifies “hot spots” of code that may benefit from threading, locates thread performance bottlenecks, estimates achievable/available performance, and shows call graph to help to identify threading candidates.
The Intel Thread Checker allows you to quickly validate designs and create prototypes by locating deadlocks and race conditions.
![Page 7: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/7.jpg)
7
Development cycle Analysis
–Verify timings, verify dependencies–Intel® VTune™ Performance Analyzer
Design (Introduce Threads)–Use a threaded library
–e.g. Intel® Performance libraries: IPP and MKL–OpenMP* (Intel® Compiler)–Explicit threading (Win32*, Pthreads*)
Analyze for correctness–Intel® Thread Checker–Intel Debugger
Tune performance–Thread Profiler–Intel® VTune™ Performance Analyzer
(source : Intel Academy program)
![Page 8: 1 How to do Multithreading First step: Sampling and Hotspot hunting 2010. 3. 19 Myongji University Sugwon Hong 1.](https://reader036.fdocuments.net/reader036/viewer/2022082415/5a4d1b7e7f8b9ab0599ba341/html5/thumbnails/8.jpg)
8
Today’s lab Using the Vtune performance
analyzer, we do measurements for three cases. Measure and hunt the hot spot for the
serial version of Mandelbrot program. Do multithreading and observe any
change by measurement. Do some tweak and observe the result
for load balancing by measurement.