주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

backgroundPool

백그라운드에서 코드를 실행하기 위한 환경

R2021b 이후

    설명

    백그라운드 풀을 사용하여 백그라운드에서 코드를 실행합니다. 백그라운드에서 코드를 실행할 경우 MATLAB® 세션에서 다른 코드를 동시에 실행할 수 있습니다.

    생성

    설명

    p = backgroundPool은 백그라운드 풀을 반환합니다.

    예제

    속성

    모두 확장

    읽기 전용 속성입니다.

    백그라운드 풀에서 실행할 FevalFuture 객체들의 대기열로, FevalQueue 객체로 지정됩니다. 이 속성을 사용하여 병렬 풀의 보류 중인 Future 변수와 실행 중인 Future 변수를 확인할 수 있습니다. Future 변수를 만들려면 parfeval (Parallel Computing Toolbox)parfevalOnAll (Parallel Computing Toolbox)을 사용하십시오. Future 변수에 대한 자세한 내용은 Future 항목을 참조하십시오.

    데이터형: FevalQueue

    읽기 전용 속성입니다.

    워커 개수로, 양의 정수 스칼라로 지정됩니다.

    • Parallel Computing Toolbox™ 라이선스가 없는 경우 값은 1입니다.

    • Parallel Computing Toolbox 라이선스가 있는 경우 NumWorkers는 보유한 물리적 코어 수와 같습니다. 예를 들어, 4개의 물리적 코어가 있는 컴퓨터에서 MATLAB을 실행하는 경우 값은 4입니다. backgroundPool을 처음 사용하기 전에 maxNumCompThreads를 사용하여 이 값을 줄일 수 있습니다.

    읽기 전용 속성입니다.

    백그라운드 풀이 사용 중인지 여부를 나타내는 플래그로, true 또는 false로 지정됩니다. 풀이 완료해야 할 미처리 작업이 있는 경우 풀은 사용 중(busy)인 상태입니다.

    객체 함수

    parfeval백그라운드에서 함수 실행
    parfevalOnAll (Parallel Computing Toolbox)Run function asynchronously on all workers in parallel pool

    예제

    모두 축소

    이 예제에서는 parfevalbackgroundPool을 사용하여 백그라운드에서 함수를 실행하는 방법을 보여줍니다. 백그라운드에서 함수를 실행할 경우 동시에 다른 MATLAB® 코드를 실행할 수 있습니다.

    parfeval을 사용하여 함수 magic(3)을 실행하고 출력값 한 개를 가져옵니다. backgroundPool을 백그라운드에서 함수를 실행하기 위한 첫 번째 인수로 지정합니다. parfeval을 사용하는 경우 Future 객체를 만듭니다.

    f = parfeval(backgroundPool,@magic,1,3);

    백그라운드에서 출력값을 가져오려면 fetchOutputs를 사용합니다. magic 실행이 완료되면 출력값이 반환됩니다.

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    이 예제에서는 백그라운드에서 Amazon® S3 버킷의 이미지를 읽어 들이는 방법을 보여줍니다.

    이미지 데이터저장소를 사용하여 버킷에 연결합니다. S3 버킷에 대한 액세스를 설정하는 방법에 대한 자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

    "s3://MyBucket/data"를 S3 버킷의 데이터 폴더에 대한 URL로 바꿉니다.

    ds = imageDatastore("s3://MyBucket/data");

    parfeval을 사용하여 S3 버킷에서 데이터를 읽어 들입니다. backgroundPool을 백그라운드에서 함수를 실행하기 위한 첫 번째 인수로 지정합니다. 그런 다음 데이터저장소에서 모든 데이터를 읽어 들입니다.

    f = parfeval(backgroundPool,@readall,1,ds);

    S3 버킷에서 데이터를 다운로드하는 동안 다른 함수를 실행할 수 있습니다. 백그라운드에서 모든 이미지를 가져오려면 fetchOutputs를 사용합니다. readall 실행이 완료되면 출력값이 반환됩니다.

    T = fetchOutputs(f);
    imout = imtile(T);
    imshow(imout)

    제한 사항

    • parpool(‘Threads’)를 사용하여 만든 풀과 backgroundPool을 사용하여 만든 풀은 둘 다 동일한 리소스를 활용하는 스레드 기반 풀입니다. 한 풀의 활동이 다른 풀의 활동을 차단할 수 있으며 그 반대의 경우도 가능합니다. 또한 이들 풀 간에 영구 데이터 및 난수 생성 스트림 상태가 공유됩니다. 난수 스트림 제어에 대한 자세한 내용은 Control Random Number Streams on Workers (Parallel Computing Toolbox) 항목을 참조하십시오.

    확장 기능

    모두 확장

    버전 내역

    R2021b에 개발됨