我目前有执行以下操作的 Matlab 代码:
map = collections.Map;
for i = 1:N
key = getKey(i);
if isKey(map, key)
% Return the value stored at key.
else
% Calculate a new value, store it in the map using key.
end
end
这个循环需要很长时间才能运行,我想使用 parfor 来帮助提高效率。但是,我似乎无法为 parfor 循环内的地图分配值。关于我能做什么的任何想法?collections.Map 的使用并不牢固,我愿意接受并行记忆的替代建议,只要它们快速高效(并且线程安全,我意识到 Map 可能不是)。
从下面的评论中添加:我希望有更多的线程安全方式在循环期间向映射添加新值,以便任何后续循环都可以使用预先计算的值。计算在时间上是相当昂贵的。