Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Auto Parallelization, OpenMP and Loop Info


Please excuse me if this was asked before!

I want to know which portions of code are auto parallelized with the compiler switch -parallel.Is there any way under linux that I can see which parts of code are auto parallelized with in the object file compiled from the c source? I can already do that fairly easy with Sun Compilers that I am used to and I am currently using Intel C and Fortran compilers for the first time, so I am still incognizant about all Intel Compiler's flags and features.

Secondly, if I set explicit OpenMP directives, which takes precedence, OpenMP Pragmas under C, or the Auto Parallelization?

Finally how do I control the level of Auto Parallelization. For instance, I might not want to parallelize certain portions of code which the compiler may parallelize?

Thanks in advance and best regards.


0 Kudos
1 Reply
Black Belt


Use "ifort /?" (on Linux this might be "ifort -?") to get the options for Intel Fortran. I think "/?" works for the Intel C++ compiler too (I don't have Intel C++).

For ifort

/Qopenmp-report{0|1|2} control the OpenMP parallelizer diagnostic level
/Qpar-report{0|1|2|3} control the auto-parallelizer diagnostic level

Your second question you can answer for yourself by producing two reports of a loop in code compiled with autoparallel-on, OpenMP-off (where loop is reported as auto parallelized), and a second report of the same loop with OpenMP pragmas and compiled with autoparallel-on OpenMP-on.

Third question. I do not have the Intel C++ documentation but autoparallization has controls for threshold (minimum loop count) and should have #pragma to enable/disable as well as adjust threshold.

Jim Dempsey

0 Kudos