Hello there.
I have a parallel application and I am profiling it with VTune Amp. XE 2015 on Ubuntu 14.10. My goal at this moment is to check how much time (and in which way / pattern) the threads of the program are executing in parallel (i.e., I want to analyze the concurrency of the program). However, I am seeing some results that I do not understand.
It all has to do with: [set] thread affinity x concurrency analysis x advanced hotspot analysis.
With thread affinity disabled and doing concurrency analysis in VTune I see the following concurrency histogram:
With thread affinity disabled and doing advanced hotspot analysis in VTune I see the following concurrency histogram:
With thread affinity enabled and doing advanced hotspot analysis in VTune I see the following concurrency histogram:
So my questions are:
Why concurrency histogram (i.e., the graph at the bottom of the screen) is correct?
How could my threads be preempted for the whole execution of the program?
The concurrency analysis does not even mention about preemption/context switching...
PS:
I am getting the following message in the advanced hotspot analysis: "Events lost on trace overflow.ko"
If I do a basic hotspot analysis the histogram is different from the above ones.
The histogram is consistent when I execute the same analysis multiple times.