Main Content

spmdIndex

spmd 블록의 현재 워커 인덱스

R2022b 이후

    설명

    예제

    id = spmdIndexspmd 블록 또는 통신 작업에서 현재 함수를 실행 중인 워커의 인덱스를 반환합니다. 워커가 spmd 블록을 실행하거나 통신 작업이 실행되기 시작하면 각 워커에 고유한 인덱스가 할당됩니다.

    spmdIndex의 값은 1과 현재 spmd 블록 또는 통신 작업에서 실행 중인 워커 개수 사이의 정수입니다. 현재 spmd 블록을 실행 중인 워커의 개수를 가져오려면 spmdSize 함수를 사용합니다.

    워커는 병렬 풀 작업 동안 모든 spmd 블록 내에서 동일한 값 id를 얻습니다.

    예제

    모두 축소

    spmd 블록에서 워커의 인덱스를 확인합니다.

    p = parpool('Threads',2);
    spmd
        spmdIndex
    end
    
    Worker 1: 
             1
      
    Worker 2: 
            2

    동일한 두 워커 풀 pparpool 루프 실행에서 워커의 인덱스를 확인합니다.

    parfor a=1:4
        [a,spmdIndex]
    end
    ans =
         3     1
    ans =
         2     1
    ans =
         1     1
    ans =
         4     1
    

    출력 인수

    모두 축소

    현재 워커의 인덱스로, 양의 정수로 지정됩니다. 이 입력값은 현재 spmd 블록 또는 통신 작업의 spmdSize 함수 출력값보다 작거나 같아야 합니다.

    spmd 블록에서는 사용자가 모든 워커에 개별적으로 액세스할 수 있고 워커가 실행하는 작업을 제어할 수 있기 때문에 워커마다 고유한 인덱스를 갖습니다.

    그러나 parfor 루프 내에서 spmdIndex는 항상 모든 반복에서 모든 워커에 대해 값 1을 반환합니다.

    확장 기능

    버전 내역

    R2022b에 개발됨

    참고 항목

    |