Здравствуйте, akukanov, Вы писали:
A>Ну а что Вы хотите?
Хочется очень много-го-го если серьезно то — чтобы OpenMP автоматически отключал потоки, выполняя все в одном, при сильной загружанности системы, например. Либо же... Значит никто не нагружал так систему параллельными вычислениями. Все тут люди здравомыслящие.
Здравствуйте, sof.bix, Вы писали:
D>>я думаю, будет правильно заставить работать кусок кода по месту, не вынося его в отдельную функцию. использование open mp не такая простая вещь, как кажется. интел на эту тему переодически семинары проводит.
SB>То есть искать проблему, не обращая на противоречия с компилятором?
нет, я предлагаю:
1) вернуть тело цикла на место, потому что это даст компилятору понимание того, что происходит с данными. сейчас, похоже, он просто вызывает функцию в 8 разных тредах.
2) так как на шару это не работает, надо больше узнать об open mp. я присутствовал на паре интеловских презентаций, и помню, что даже простой цикл не заработал без танцев с бубнами.
3) и вот когда он заработает, и результат будет неудовлетворительным, берёте в руки интеловские тулы и разбираетесь.