Набор инструментов для параллельных вычислений Matlab, динамическое распределение работы в циклах parfor

Я работаю с длительным циклом Parfor в Matlab.

parfor iter=1:1000
   chunk_of_work(iter);
end

Обычно существует около 2-3 временных выбросов за цикл. То есть на каждую 1000 выполненных работ приходится 2-3, которые занимают примерно в 100 раз больше времени, чем остальные. Когда цикл приближается к завершению, рабочие, которые оценили выбросы, продолжают работать, в то время как остальные рабочие не имеют вычислительной нагрузки.

Это согласуется с циклом parfor, распределяющим работу статически. Это в отличие от документации для параллельных вычислительных инструментовнашел здесь:

«Распределение работы является динамическим. Вместо того, чтобы выделять фиксированный диапазон итераций, рабочим назначается новая итерация только после того, как они завершают обработку своей текущей итерации, что приводит к равномерному распределению рабочей нагрузки».

Есть идеи о том, что происходит?

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

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