簡體   English   中英

使用MATLAB進行並行圖像處理

[英]Parallel image processing with MATLAB

我編寫了一個MATLAB程序,可以對視頻進行計算。 我認為它是適應多個cpu內核的理想選擇,因為要進行很多平均處理。 我只是為將每個幀的部分發送到每個實驗室而感到困惑。 說(為簡單起見),它是一個200幀的文件。 我已經閱讀了一些指南,並使用SPMD做到了這一點。

spmd
limitA = 1;
limitB = 200;  
a = floor(((limitB-limitA)/numlabs)*(labindex-1)+limitA);                               
b = floor((((limitB-limitA)/numlabs)*(labindex-1)+limitA)+(((limitB-limitA)/numlabs)));
fprintf (1,'Lab %d works on [%f,%f].\n',labindex,a,b); 
end

它成功輸出每個工人將在各自的部分工作(例如,實驗1在1:50,實驗2 50:100等)。

現在,我陷入困境的是如何真正使我的代碼主體在每個Lab的框架部分上工作。 現在有提示或簡單的方法來編輯我的主代碼,以便它根據labindex知道要處理哪些框架? 將spmd添加到循環會導致錯誤,因此是我的問題。

謝謝

從您擁有的內容開始,您是否僅需要以下內容:

spmd
    % each lab has its own different values for 'a' and 'b'
    for idx = a:b
        frame = readFrame(idx); % or whatever
        newFrame = doSomethingWith(frame);
        writeFrame(idx, newFrame);
    end
end

當然,如果這是您正在做的事情,則可能需要序列化框架寫入(即,確保一次僅寫入一個進程)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM