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

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

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

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

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

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

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

5
задан Sevenless 30 March 2012 в 04:55
поделиться