Странное ускорение с OpenMP

У меня есть некоторые странные результаты при тестировании OpenMP. В качестве тестового примера я суммирую два вектора чисел с плавающей точкой, задача, которая должна быть полностью распараллеливаемой.

Для векторов, достаточно больших на моем четырехъядерном процессоре с Hyper-Threading, что по сути означает, что у меня должно быть 4×2 независимых потока, я получаю почти идеальное ускорение с коэффициентом два от однопоточного исполнения до двухпоточного. Та же история, если я перейду с 4 потоков на 8 потоков, относительное ускорение в 2 раза.

Тем не менее, я почти не получаю ускорение от 2 до 4 потоков. Я мог понять, произошло ли это во время перехода от 4 до 8 потоков, возможно, потому, что технология Hyper-threading, которая помещала два логических потока в одно физическое ядро, была несовершенной. Но на этом промежуточном этапе мне это кажется странным.

Буду благодарен за любые идеи!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]