Main Content

비동기 병렬 프로그래밍

parfeval을 사용하여 백그라운드에서 함수 실행

parfeval을 사용하면 함수 실행이 완료될 때까지 기다릴 필요 없이 백그라운드에서 함수를 실행할 수 있습니다. for 루프에서 일찍 빠져나오는 것이 편리한 경우가 많습니다. 예를 들어, 최적화 절차에서 결과가 괜찮다면 사용자는 루프를 일찍 중지할 수 있습니다. parfeval 또는 parfevalOnAll을 사용하여 하나 또는 모든 병렬 풀 워커에서 이와 같이 할 수 있습니다. 이 방법은 중간 결과를 플로팅하려는 경우에 유용할 수 있습니다. 참고로, 이는 루프가 완료될 때까지 기다려야 하는 parfor를 사용하는 것과 다릅니다.

데이터 대기열을 사용하여 다른 워커의 메시지나 데이터를 전송하고 폴링하려면 sendpoll을 함께 사용하십시오. afterEach를 사용하면 데이터 대기열에서 새 데이터를 받을 때 호출할 함수를 추가할 수 있습니다.

Future 배열의 각 요소 또는 모든 요소가 완료된 후 함수를 자동으로 호출하려면 afterEachafterAll을 사용하십시오. 이 배열은 parfeval, parfevalOnAll, afterEach 또는 afterAll에서 반환되는 Future 객체를 포함할 수 있습니다.

함수

모두 확장

parfeval병렬 풀 워커에서 함수 실행
parfevalOnAll병렬 풀의 모든 워커에서 비동기식으로 함수 실행
ticBytes병렬 풀 내에서 전송된 바이트 수 계산 시작
tocBytesRead how many bytes have been transferred since calling ticBytes
send데이터 대기열을 사용하여 워커에서 클라이언트로 데이터 보내기
poll Retrieve data sent to a pollable data queue
afterEachDataQueue에서 새 데이터를 받을 때 호출할 함수를 정의합니다.
afterEachRun function after each function finishes running in the background
afterAllRun function after all functions finish running in the background
fetchOutputsRetrieve results from function running in the background
fetchNextRetrieve next unread outputs from Future array
cancelStop function running in the background
cancelAll모든 작업 또는 태스크 취소 (R2022a 이후)
waitFuture 객체가 완료될 때까지 대기
FutureFunction scheduled to run
parallel.Pool워커의 병렬 풀
parallel.pool.DataQueue클라이언트와 워커 간에 데이터 전송 및 수신 대기
parallel.pool.PollableDataQueue Send and poll data between client and workers

도움말 항목

추천 예제