Main Content

parfevalOnAll

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

설명

F = parfevalOnAll(p,fcn,numFcnOut,X1,...,Xm)은 병렬 풀 p의 모든 워커에서 함수 fcn의 비동기 실행을 요청합니다. parfevalOnAll 함수는 입력 인수 X1,...,Xm을 사용하여 각 워커에서 fcn을 실행하고 numFcnOut개의 출력 인수를 반환합니다. 모든 워커가 fcn 실행을 완료하면 Future 객체 F에서 결과를 가져올 수 있습니다.

예제

F = parfevalOnAll(fcn,numFcnOut,X1,...,Xm)은 현재 병렬 풀의 모든 워커에서 비동기 실행을 요청합니다. 풀이 없는 상태이고 자동 풀 생성이 활성화되어 있는 경우 MATLAB®은 새 병렬 풀을 시작합니다.

참고

clear를 사용하려면 parfor 또는 spmd 대신 parfevalOnAll을 사용하십시오. 이렇게 하면 작업 공간 투명성이 유지됩니다. parfor 루프 또는 spmd 문에서 투명성 확보하기 항목을 참조하십시오.

예제

모두 축소

parfevalOnAll 함수를 사용하면 작업 공간 투명성을 유지하면서 모든 워커에서 정리 함수를 실행할 수 있습니다.

예를 들어 시뮬레이션 분산을 위한 임시 폴더를 삭제하기 전에 mex 파일을 언로드하려면 parfevalOnAll을 사용하여 모든 워커에서 clear 함수를 실행합니다. clear 함수에는 0개의 출력 인수가 있으므로 parfevalOnAllnumFcnOut 입력 인수에 0을 지정합니다.

parfevalOnAll(@clear,0,"mex");

모든 워커에서 Simulink 모델 창을 모두 닫으려면 parfevalOnAll 함수를 사용하여 bdclose를 실행합니다.

p = gcp; % Get the current parallel pool
f = parfevalOnAll(p,@bdclose,0,"all");

두 경우 모두 완료될 때까지 기다렸다가 fetchOutputs 함수를 사용하여 성공 여부를 확인합니다. 출력 인수를 요청하지 않은 경우에도 Future에 fetchOutputs을 사용하여 워커에 발생한 오류를 확인할 수 있습니다.

fetchOutputs(f)

입력 인수

모두 축소

워커의 병렬 풀로, parallel.Pool 객체로 지정됩니다. parpool 함수를 사용하여 병렬 풀을 만들 수 있습니다.

워커에서 실행할 함수로, 함수 핸들로 지정됩니다.

예: fcn = @sum

데이터형: function_handle

함수 fcn에서 요청된 출력 인수 개수로, 음이 아닌 정수로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

입력 인수로, 변수 또는 표현식이 쉼표로 구분된 목록으로 지정됩니다. 병렬 풀 워커는 이러한 인수를 함수 fcn에 입력합니다.

출력 인수

모두 축소

Future로, 모든 병렬 워커에서의 fcn 실행을 나타내고 그 결과를 유지하는 parallel.FevalOnAllFuture 객체로 반환됩니다. 결과를 수집하려면 fetchOutputs를 사용하십시오.

확장 기능

버전 내역

R2013b에 개발됨

모두 확장