parfor выполняется как обычный цикл for на компьютере? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть два компьютера и работает код MATLAB.

1) На одном компьютере строка, содержащая parfor, выполняет распараллеленные вычисления, как и ожидалось.

2) На другом компьютере parfor выполняется так, как будто это обычный цикл for, без какого-либо распараллеливания. Это происходит даже для того, чтобы просить всего две вещи параллельно.

Ни на одном компьютере ошибка кода отсутствует.

Что происходит?

1 Ответ

1 голос
/ 27 марта 2019

Документация на parfor гласит:

По умолчанию MATLAB использует доступных рабочих в вашем параллельном пуле. [...] Вы можете переопределить число рабочих по умолчанию в параллельном пуле, используя parpool. Когда в пуле нет доступных рабочих или M равно нулю, MATLAB по-прежнему выполняет тело цикла в недетерминированном порядке, но не параллельно. Используйте этот синтаксис для переключения между параллельным и последовательным выполнением при тестировании вашего кода.

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

...