I would be glad if anyone can provide me non-general advice how to increase speed up or reduce overheads of for software which I’m trying to parallelize.
For my dissertation thesis I’m developing software to predict dam inflow. Because calibration it is time demanding I would like to reduce that, by distribution to more cores. For this purpose I’ve chose Intel Fortran and OpenMP.
Software code is consist of many nested loop which most outer one is month step (DO = 1, 12). For this reason I’ve used data decomposition approach for parallelization and I’ve got PARALLEL DO in front of first outer one loop (to ensure big granularity). This way of parallelism resulted in quite low SpeedUp approximately 2.4. Thanks to amplifier I founded that there is no any wait time, no imbalance or idle processor time - all cores are fully utilized. Increasing work inside nested loops decrease achieved SpeedUp. Also by shifting PARALLEL DO inside the nested loops (decreasing granularity) has same impact (more inside, lower SpeedUp). So I consider that low SpeedUp is caused by big parallelization overheads.
..... and what I want
• Is there any instruction/manual how to proceed to increase SpeedUp for similar cases like my example? I’ve read quite lot of documentation from Intel, OpenMp and others but all those manuals where quite general (there is not advices for my case). List what I’ve read is below.
• Is there anyone who will be willing to guide me or provide advices to: If it is possible to increase SpeedUp and how to do that?
Source code of software is there:
http://www.brontosaurivhimalajich.cz/Sl ... raceMP.rar
Thank you very much in advance for your replies . I hope that this discussion will benefits for all involved.
With regards
Ing. Jiri Sazel
List what I already went through:
https://computing.llnl.gov/tutorials/openMP/
http://software.intel.com/en-us/article ... lications/
http://software.intel.com/en-us/article ... e-systems/
http://software.intel.com/en-us/videos/ ... 7462316001
