Intel VTune amplifier is a analysis software that allows you the ability to measure performance of your serial or multithreaded program
. VTune allows you to analyze the performance of your algorithms and multithreading. It can help with debugging threads by calculating overhead, finding bottlenecks or inefficiencies.
==='''Create a project'''===
I will be explaining how to use VTune part Intel® Parallel Studio XE 2019 of the alongside Visual Studio 2017. Intel® Parallel Studio XE can be found here: https://software.intel.com/en-us/parallel-studio-xe. Once installed you will be able to find VTune in the tools tab inside Visual Studio. [[File:tools_tab.PNG | 400px]]
Configure a project'''===
When you hover over Intel VTune Amplifier 2019 in the tool’s menu. You will see more options appear.
Select configure Analysis .'''
[[File:options.PNG | 400px]]
The following screen will be displayed. Click on the three little dots circled in the below picture . To expand more options for running VTune.
[[File:SetupOptions.PNG | 600px]]
This menu will appear, it contains different tests that you can run against your program. The I am going to look through is the default test Hotspots. Depending on your program you may want too to look into the other options.
[[File:startup options.PNG |
==='''How it works'''===
On the main page we can run the test, by clicking on the blue play button.
[[File:start test. PNG | 600px]]
When the test completes, the summary page will be displayed. This will outline the results from the test .
[[File:test complete.PNG | 600px]]
The following picture is the different tabs available from a hotspot analysis.
[[File:tabs.PNG | 600px]]
**Main configuration page for VTune
**Logs from the analysis
Elapsed Time: this is the amount of time your program took to run ***The CPU time: displays the effective, spin and overhead times. **Top Hotspots: Displays the area’s that were most active in your program. **Effective CPU Utilization Histogram: This shows the time your program spent using x number of threads. The graph shows x axis is the moments that your program was a certain number of threads. And the y axis is the time that your program used that number of threads for. **Collection and Platform Info: this display’s all the hardware information about the computer the test was run on.
**Allows you to se the call stack of a function starting from the first call.
**Displays the time and the utilization of each thread.