我编写了一个 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 添加到循环会导致错误,因此是我的问题。
谢谢