I am evaluating VTune for the first time. I am running Basic or Advanced Hotspots on Linux with Intel (R) Xeon (R) CPU D-1540 @ 2.00GHz with 8 CPU cores. My application (written in C) is in an initial stage and currently has an affinity to a specific core which means the same code is not running in more than 2 cores. Only 4 cores are being used at the moment. A main loop runs in 2 cores and the other 2 cores are dedicated for some other purpose.
Main loop is a simple while loop which processes an incoming frame. If there is no traffic, it has nothing to process. I am currently running VTune analysis without any frames and it shows poor usage of all the functions.
1. How to use VTune meaningfully in the above said scenario ? This experiment is to evaluate if VTune helps in the long run.
2. Currently everything is red/poor-usage. Help says "by default, poor usage is when the number of simultaneously running CPUs is less than or equal to 50% of the target CPU usage". Does it mean VTune is going to display poor usage always for single threaded applications on a multi-core processor ? Eg: if only one core (out of 8 cores) is running an application, does it always show the analysis as poor (in red) ?
Thanks in advance for your help!
By default, VTune Amplifier is looking to see if your application is utilizing all the cores of the system, simultaneously. If you don't want to use all the cores, you can adjust the definition of "Poor", "Ok", "Ideal", using the sliders on the histogram in the Summary display. Be sure to press "Apply" after moving them.
Of course, that is just an indication of how effectively you are using the CPU. If you aren't interested in analyzing this aspect of system usage, just change the viewpoint to "Hotspots".
Thanks MrAnderson for taking time to respond.
I need to determine the levels to set them appropriately. However, with this option there is always a possibility of setting it incorrectly and assuming it is best optimized.
Is there a way of determining a single threaded application is best optimized with VTune before adding threads to take advantage of parallelization ? What is the right approach of running and viewing analysis for single threaded application. It helps if you can also specify what is not relevant to look at for this kind of analysis if there is something like that.