Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Qparallel/OpenMP 101

chris
Beginner
270 Views
The first question is trivial. In my process, libguide40.dll takes more time than my process's executable. Does the time in libguide40.dll include just the time spent creating, synchronizing, and destroying threads or does it include the time to execute threads from my process as well?

The second question is slightly more complicated. With the /QParallel loop, the output build shows the remark loop was auto-parallelized with a line that is not a loop but a function call. I thought auto-parallelization only applied to loops. Is the output spurious or is the compiler multi-threading the function? Is the output this way because the function is inlined prior to the parallelization step? Any explanation as to what the compiler is actually doing is appreciated.

0 Kudos
1 Reply
Andrey_C_Intel1
Employee
270 Views

First answer is trivial, same as question: it depends on how you measured the time. If you count time spent in routines and all their descendants then the time in libguide40.dll includessome time spent in your code.

Second answer is simple also: auto-parallelization indeed applied to loops only. Pointing to function callusually means that the function was inlined. You can check this bydisabling inlining and see the difference in auto-parallelization report.

- Andrey

0 Kudos
Reply