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

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

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.

Похожие темы