Выполните функции в фоновом режиме Используя parfeval

Этот пример показывает, как можно использовать parfeval, чтобы выполнить функцию в фоновом режиме и собрать результаты, когда они становятся доступными. В этом примере вы представляете вектор нескольких будущих запросов в цикле for и получаете отдельные будущие выходные параметры, когда они становятся доступными.

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
 
Got result with index: 1.
Got result with index: 2.
Got result with index: 3.
Got result with index: 4.
Got result with index: 5.
Got result with index: 6.
Got result with index: 7.
Got result with index: 8.
Got result with index: 9.
Got result with index: 10.

Похожие темы