Re[9]: OpenMP тормозит?
От: akukanov Россия  
Дата: 13.10.08 09:37
Оценка: +1
Здравствуйте, sof.bix, Вы писали:

SB>В общем сравнивалось время выполнения двух версий программы. В ней есть параллельно идущие и нераспараллеленые куски кода, выполняющиеся по одиночке примерно за 200сек. Одна была с отключеной поддержкой OpenMP, другая включеной (число потоков=числу ядер фиксированно). Запуск разных версий шел естественно последовательно, но в разных, параллельно идущих, количествах копий . 4-8. Скорость падала при количестве процессов, сравнимым с количеством ядер.


Ну а что Вы хотите? У Вас при включенном OpenMP каждый из 4-8 процессов запускает минимум 4 потока, всего имеете от 16 до 32 потока, одновременно конкурирующих за процессорное время 4-х ядер. Oversubscription, однако; как следствие — увеличение накладных расходов на переключение контекстов, а если вычисления ещё и с памятью что-то делают — значительно больше промахов по кэшу. Если OpenMP отключить — 4-8 потоков на 4 ядра, соответственно и проблем нет.

SB>Коллективная мысль наводит что дело в Виндовом шедулере, т.е. под саляркой меньшие потери будут!?


Не думаю.
А что Вы померять-то хотите, вообще?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.