It is suggested that you install vtune before PTU, although that isn't necessary. You can take out a VTune license and use it to install PTU without VTune. There's no way a blanket answer can be given to your question. You would probably have to try them both, to see whether you want one or both for your usage, if the descriptions don't tell you. For basic sampling, or working around breakage in gprof, either is good. I had difficulty with VTune on Windows XP64 Bloomfield, while PTU works fine. On the same machine, with Red Hat x86_64, both VTune and PTU are working well. So, I still have to try both, to answer such a question for myself. One of the differences is in the way a threaded application is sampled. The default in PTU is to present 2 columns for each event, one with the total among all threads, and the other with the largest number among the threads. VTune, in my experience, tallies the threads separately, if possible. There seem to be differences in the selection of which of the less commonly used event selections are available, and in pre-packaged combinations of events. There are features which are present only in Windows VTune, such as graphical display of imported OpenMP profile data. PTU may be more difficult to discover where you right click to get the pull-down menus you need; once you find them, they are probably more convenient than VTune. I think this is a conscious design difference, with PTU menus being set up for the convenience of "power users." I'm not a strong fan of the VTune call graph feature, but for some people it's the most important one. I guess, when gprof is broken, VTune call graph will become more important to me. So, you can see many of the preferences are personal, and could easily be affected by my not being fully current with the latest version of each.
I'm wondering what are the main differences between vtune and PTU ? (Or why is there two tools that seem to do the same things)
VTune isthe product, whereas PTU is a test vehicle for new features. You get support for VTune, but PTU is provided "as is". There should be no major holes in the feature set of VTune, where PTU often provides only a first implementation of a feature. Beginners should start with VTune and PTU is considered for experts only. VTune can be integrated in Visual Studio. The "Over time view" is missing in PTU, but PTU offers other features like statistical callgraph or heap profiler.
Personally, I use both tools. My preference for sampling is PTU, but I switch back to VTune if I need a real call-graph or a over time view.
Thank you both for your answer. We have a license for both products but since it requires root privleges to switch the driver from one to the other I had to know if there are diffrences between both products in order to use only one... otherwise our IT will go mad with requests to switch the driver.
I have to admit that for me both product are hard to use since I'm not familiar with the sampling features and the hardware behavior they show (even the documentation is quite hard to understand). Most of the time I don't know how to interpret the results I got... but I've hope to get, someday, a training on these tools :)