Based on the spmd labindex coding provided by @Walter Roberson here, I wonder when do the following labindex (labindex 2, 3 and 4) execute their jobs? Is it based on clock cycle or any enable port?
Or labindex 2, 3 and 4 execute their jobs once they received data and in waiting (pause) condition when there is no data received?
framesize = 4096;P = parpool(4);spmd if labindex == 1 end endspmd if labindex == 1 afr = dsp.AudioFileReader(Filename, 'SamplesPerFrame', framesize); while ~isDone(afr) frame = step(afr); labSend(frame, 2); end labSend([], 2) release(afr) elseif labindex == 2 while true frame = labReceive(1); if isempty(frame) labSend([], 3) break end Bres = BlockB(frame); labSend(Bres, 3); end elseif labindex == 3 while true Bres = labReceive(2); if isempty(Bres) labSend([], 4) break end Cres = BlockC(Bres) ; labSend(Cres, 4) end else while true Cres = labReceive(3); if isempty(Cres) break end Dres = BlockD(Cres) ; end end
Best Answer