【发布时间】:2017-10-25 15:35:41
【问题描述】:
我正在尝试使用并行处理在 MATLAB 中执行迭代算法。存在多个迭代序列,由单个迭代工作者更新。然后,这些工作人员将他们的最新迭代发送到分析工作人员的DataQueue。分析工作者从队列中提取下一个更新并相应地更新分析。但是,除非分析工作者知道从哪个迭代工作者那里传递了更新,否则分析无法正确更新。
已进行以下尝试以报告正在执行异步函数评估的工作人员的标识符:
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
此代码报告所有评估的idx 值为1。这是获取处理函数评估的工作人员标识符的正确方法吗?我应该使用其他属性吗?有没有办法为正在完成工作的工作人员创建一个唯一标识符,以便分析工作人员知道哪个工作人员计算了系列中的下一次迭代?
【问题讨论】:
标签: matlab asynchronous parallel-processing