Main Content

ticBytes

병렬 풀 내에서 전송된 바이트 수 계산 시작

    설명

    예제

    ticBytes(pool)pool에서 각 워커에 전송된 바이트 수를 계산하기 시작합니다. 이후에 tocBytes(pool)을 사용하여 두 호출 사이에 각 워커에 전송된 데이터의 양을 측정할 수 있습니다.

    ticBytes(pool) 함수와 tocBytes(pool) 함수를 함께 사용하여 병렬 풀에서 워커 간 데이터 전송량을 측정합니다. parfor, spmd 또는 parfeval과 같은 병렬 언어 구문 및 함수를 실행하는 동안 ticBytestocBytes를 사용할 수 있습니다. ticBytestocBytes를 사용하여 더 적은 양의 데이터를 전달하고 코드를 최적화합니다.

    예제

    startState = ticBytes(pool)은 출력 인수 startState에 상태를 저장합니다. 이를 통해 여러 쌍의 ticBytestocBytes 호출 사이에 전송된 바이트 수를 동시에 기록할 수 있습니다. 이후의 tocBytes 호출에서 startState의 값을 입력 인수로 사용합니다.

    예제

    모두 축소

    a = 0;
    b = rand(100);
    ticBytes(gcp);
    parfor i = 1:100
        a = a + sum(b(:, i));
    end
    tocBytes(gcp)
    
    Starting parallel pool (parpool) using the 'Processes' profile ... 
    connected to 4 workers.
    
                 BytesSentToWorkers    BytesReceivedFromWorkers
                 __________________    ________________________
    
        1            42948              7156                   
        2            36548              7156                   
        3            27500              4500                   
        4            27500              4500                   
        Total    1.345e+05             23312                   
    

    워커마다 수행할 루프 반복 횟수가 다를 수 있기 때문에 워커가 전송하는 바이트 수가 다를 수도 있습니다.

    for 루프에 중첩된 parfor 루프를 실행하는 동안 전송된 최소 바이트 수와 평균 바이트 수를 측정합니다.

    REPS = 10;   
    minBytes = Inf;   
    ticBytes(gcp);  % ticBytes, pair 1
    
    for ii=1:REPS
       a = 0;
       b = rand(100);
       startS = ticBytes(gcp)  % ticBytes, pair 2  
       parfor i = 1:100
           a = a + sum(b(:, i));
       end
       bytes = tocBytes(gcp, startS)  % tocBytes, pair 2  
       minBytes = min(bytes, minBytes)
    end
    
    averageBytes = tocBytes(gcp)/REPS  % tocBytes, pair 1 
              

    for 루프 내에 parfor 루프를 중첩하면 오버헤드로 인해 속도가 느릴 수 있습니다. 이에 대해서는 중첩 for 루프를 parfor 루프로 변환하기 항목을 참조하십시오.

    입력 인수

    모두 축소

    병렬 풀로, parallel.ProcessPool 객체 또는 parallel.ClusterPool 객체로 지정됩니다.

    프로세스 풀 또는 클러스터 풀을 만들려면 parpool을 사용합니다.

    예: pool = parpool('Processes');

    출력 인수

    모두 축소

    반환된 시작 상태로, 이후의 tocBytes 호출에서 입력 인수로 사용됩니다.

    예: startState = ticBytes(gcp);

    확장 기능

    버전 내역

    R2016b에 개발됨

    참고 항목

    | | | | |