이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

parfeval

병렬 풀 워커에서 비동기식으로 함수 실행

구문

F = parfeval(p,fcn,numout,in1,in2,...)
F = parfeval(fcn,numout,in1,in2,...)

설명

F = parfeval(p,fcn,numout,in1,in2,...)는 병렬 풀 p에 포함된 워커에서 함수 fcn을 비동기식으로 실행하도록 요청합니다. numout은 기대하는 출력 인수 개수를 나타내며 in1,in2,...는 함수에 제공되는 입력 인수입니다. fcn의 비동기 실행은 MATLAB을 차단하지 않습니다. Fparallel.FevalFuture 객체이며.워커가 fcn의 실행을 완료하면 이 객체에서 결과를 얻을 수 있습니다. fcn의 실행은 cancel(F)를 호출하여 실행을 명시적으로 취소하지 않는 한 항상 진행됩니다. 함수의 실행을 여러 번 요청하려면 parfeval을 여러 번 호출해야 합니다. (참고로, parfevalOnAll은 모든 워커에서 동일한 함수를 실행할 수 있습니다.)

F = parfeval(fcn,numout,in1,in2,...)는 현재 병렬 풀에서 비동기 실행을 요청합니다. 병렬 기본 설정에 자동 풀 생성이 비활성화되어 있지 않다면 풀이 없는 경우 새 병렬 풀이 시작됩니다.

예제

병렬 풀에 단일 요청을 제출하고 출력값을 가져옵니다.

p = gcp(); % Get the current parallel pool
f = parfeval(p,@magic,1,10);
value = fetchOutputs(f); % Block until f completes

여러 개의 향후 요청으로 구성된 벡터를 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

R2013b에 개발됨