Main Content

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)병렬 풀의 모든 워커에서 비동기식으로 함수 실행

    예제

    모두 축소

    이 예제에서는 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에 개발됨