Как работает функция parfeval в MATLAB?

В документации MATLAB у нас есть пример кода дляparfeval функция. У меня есть несколько вопросов по этому поводу. Это код:

p = gcp();
%// To request multiple evaluations, use a loop.
for idx = 1:10
    f(idx) = parfeval(p,@magic,1,idx); % Square size determined by idx
end
%// Collect the results as they become available.
magicResults = cell(1,10);
for idx = 1:10
    %// fetchNext blocks until next results are available.
    [completedIdx,value] = fetchNext(f);
    magicResults{completedIdx} = value;
    fprintf('Got result with index: %d.\n', completedIdx);
end
Какparfeval Работа?Эта функция отправляет каждую (idx) оценкуmagic функция для конкретного работника?

Если бы у нас была только одна строка кодаf = parfeval(p,@magic,1,10);:

Как этот код будет работать?Будет ли он отправлять оценку только одному работнику и возвращает результат?В чем разница междуparfeval а такжеparfevalOnAll?В чем разница междуfetchNext а такжеfetchOutputs?Зачем намfetchNext после первогоfor цикл и второй цикл, чтобы получить результаты?У нас не все результаты после первого цикла? Зачем?Я думаю, что мы ждем рабочих, чтобы завершить процесс во втором цикле. Это правда? Разве мы не можем сделать это без какой-либо петли?

Я думаю, что мы можем использоватьmagicResults{idx} = fetchOutputs(f(idx)); во втором цикле. У нас такие же результаты. В чем разница между этими двумя структурами?

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

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