Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Intel Visual Fortran OpenMP

Brett_Wilt
Beginner
458 Views
I have an application that is generating what I think is abnormal observations. I use OpenMP for threading, and achieve great scaling results from 2 to 8 cores (95% efficiency) when the Intel Fortran optimizations are disabled. However, even when I turn on level O1, my OpenMP threading efficiency dramatically drops to about 55% efficiency. Is this normal? What are the global optimization (/Og) impacts that can affect the OpenMP efficiency?

Thanks!
Brett
0 Kudos
1 Reply
TimP
Honored Contributor III
458 Views
This is not unusual, particularly with certain older model CPUs, such as Clovertown, where you might approach full threaded performance of which the memory system is capable even without optimization. It's more likely to occur with vectorization, which you have prevented by setting -O1. If you improve the single thread performance, as you should, with optimization, you are unlikely to get a proportional gain in threaded performance.
As long as threading still improves performance, you have a reasonable case to claim to have met expectations.
Combining optimization with multi-threading does make the effect of good affinity settings (KMP_AFFINITY environment variable) more visible, along with organizing data so as to make affinity more effective.
0 Kudos
Reply