2017-10-25 3 views
1

병렬 처리를 사용하여 MATLAB에서 반복 알고리즘을 수행하려고합니다. 개별적이고 반복적 인 근로자에 ​​의해 업데이트되는 여러 반복 시리즈가 존재합니다. 그러면이 근로자는 분석가의 DataQueue으로 최신 반복을 보냅니다. 분석 작업자는 대기열에서 다음 업데이트를 가져 와서 그에 따라 분석을 업데이트합니다. 그러나 애널리틱스 직원이 반복 작업자에게 업데이트가 전달되지 않았다면 애널리틱스를 제대로 업데이트 할 수 없습니다.MATLAB의 비동기 함수 평가에서 작업자 인덱스 검색

다음 시도는 비동기 기능 평가를 수행하는 근로자에 ​​대한 식별자를보고하게되었습니다

for j = 1:20 
    L(j) = parfeval(gcp, @() labindex, 1); 
end 

for j = 1:20 
    [~,idx] = fetchNext(L) 
end 

function index = labindex() 
    index = labindex 
end 

이 코드는 모든 평가에 대한 1idx 값을보고합니다. 이것은 함수 평가를 처리하는 작업자의 식별자를 얻는 올바른 방법입니까? 내가 사용해야하는 또 다른 부동산이 있습니까? 분석 작업자가 시리즈에서 다음 반복을 계산 한 작업자를 알 수 있도록 작업 완료중인 작업자의 고유 식별자를 만드는 방법이 있습니까?

답변

0

Click here for Documentation about labindex in MATLAB

Labindex은 당신이 SPMD 블록을 사용하는 경우에만 해당 직원에게 고유 한 근로자의 인덱스를 반환합니다. spmd 블록을 사용하면 개별 작업자를 완벽하게 제어 할 수 있습니다. spmd 블록은 작업자간에 데이터를 전송하는 데 도움이되므로 매우 편리합니다.

Click here for Documentation about spmd in MATLAB

나는이 도움이되기를 바랍니다.