Параллельный код плохая масштабируемость

Недавно яЯ анализировал, насколько мои параллельные вычисления на самом деле ускоряются на 16-ядерном процессоре. И общая формула, которую я заключил - чем больше у вас потоков, тем меньше скорость на ядро, которое вы получаете - меня смущает. Вот графики загрузки моего процессора и скорости обработки:

Итак, вы можете видеть, что загрузка процессора увеличивается, но скорость увеличивается гораздо медленнее. Я хочу знать, почему такой эффект имеет место и как получить причину немасштабируемого поведения. Я'мы убедились, что использовалиРежим GC сервера, Я'мы убедились, что яраспараллеливание соответствующего кода, как только код не делает ничего, кроме

Загружает данные из ОЗУ (сервер имеет 96 ГБ ОЗУ, файл подкачки не долженбить)Выполняет не сложные расчетыХранит данные в RAMI '

вепрофилированные мое приложение тщательно и не обнаружило узких мест - похоже, что каждая операция становится медленнее с ростом числа потоков.

я застрял, чтоне так с моим сценарием?

Я использую .Net 4 Task Parallel Library.

Ответы на вопрос(5)

Ваш ответ на вопрос