- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Thanks!
Brett
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page