gpt4 book ai didi

MATLAB 帕福尔 : memory management: shared memory or not?

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:50 28 4
gpt4 key购买 nike

我不明白Matlab并行计算工具箱中的parfor cicle是如何与内存一起工作的:我读到它在所有worker之间共享内存(然后我认为每个worker(核心)都可以访问感兴趣的内存位置而无需制作本地复制),但其他引用资料告诉我每个核心都会在其工作的地方制作内存(变量等)的本地副本!答案是什么?Parfor 有共享内存系统,不制作数据副本,或者每个工作人员都有一份本地数据副本?谢谢

最佳答案

如果您使用 MDCS,PARFOR 可以跨多台机器运行集群,那么它必须能够将所需的数据复制到工作人员。碰巧的是,即使工作人员与您的桌面 MATLAB 在同一台主机上,它也会复制数据。部分原因是 MATLAB 无法理解何时可以安全地共享数组。请注意,这适用于“广播”数据,而不适用于“切片”数据——当数组被“切片”时,只有相关部分会发送给每个工作人员。在以下人为的示例中:

broadcast = rand(400);
slicedIn = rand(400);
parfor idx = 1:400
slicedOut(idx) = numel(broadcast) + sum(slicedIn(:, idx));
end

然后所有的broadcast被复制到每个worker;而仅复制所需的 slicedInslicedOut 片段。更多信息:http://www.mathworks.co.uk/help/distcomp/advanced-topics.html#bq_of7_-1

关于MATLAB 帕福尔 : memory management: shared memory or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623930/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com