I'm trying to analyze the OpenMP performance of a loop, using /Qopenmp-profile and the Intel Thread Profiler.
I keep getting the old "None of the Intel Thread Profiler OpenMP collector's modules have been linked to an OpenMP library. This collector may not generate any results." message, though.
This happens even if I use /Qopenmp-lib:legacy.
Reading some older threads on this forum I tried setting KMP_INTERVAL and running from the console (i.e. not under vTune) but it didn't generate a guide.gvs file (even if I set KMP_STATSFILE as well).
Any ideas why none of this is working?
If it is relevant, the code is part of a module which is dynamically loaded into a non-ICL compiled python executable (via SWIG).
This is from evaluation copies of vTune/thread-profiler & icl.
My cxxflags are: /nologo /D_CRT_SECURE_NO_DEPRECATE /wd4996 /GR /EHsc /TP /Zm300 '/FdC:\\\\memudev\\\\trunk\\\\dev\\\\NT40_optimize\\\\obj\\\\src\\\\modeler\\\\core\\\' /MD /Ox /GR -DBOOST_DISABLE_ASSERTS /Qopenmp-lib:legacy /Qopenmp_profile
It should be sufficient to link with '/Qopenmp_profile' and ignore the warning message when running in Thread Profiler (or run outside Thread Profiler and get a guide.gvs file that can be opened with Thread Profiler) (no need for the legacy library or other env. variable switches).
What version of icl are you using?
One possible issue with getting a .gvs file may be with shutdown. If the shutdown is somehow abnormal (hitting Ctrl-C to quit the python interepreter, for example), no .gvs file will be generated.
Thanks for the response.
I'm using icl version 11.1 (evaluation license for a few more days..).
Shutdown is normal - python exits normally, no errors & I'm not running interactively.
Strangely, I can run the examples shipped with the profiler, in C:\Program Files\Intel\VTune\tprofile\samples\ompPrime. That is, they show up in the profiler. The only difference I can see is that they're compiled with Visual Studio [and that I'm building a dynamically loaded DLL]. But even if I use pretty much the same compiler flags my app doesn't show up.
If I run the dependency walker, it shows my DLL linked with LIBIOMP5MD.DLL, but if I run it on the ompPrime.exe example, it shows linkage with LIBIOMPPROF5MD.DLL.
So for some reason even with /Qopenmp_profile it is not linking it with the profiling library.
So I'm still at a loss..