当调用parpool
时,我可以指定如何在群集中的可用节点之间组织工作者创建的方式吗?
我简化的问题是,我们有两个函数function1
和function2
,这两个函数都是矢量化的,因此使用了所有可用的CPU核心。
我现在可以访问集群上的两个节点,我想在这里运行这两个函数。每个节点有24个核心,群集有32个MDCS许可证。所以我有兴趣创建2个worker,其中一个worker在第一个节点上,第二个在第二个节点上,这样我就可以在一个节点上运行function1
而在第二个节点上运行function2
,让矢量化完全使用每个节点。
我不能只问48名工人,因为我们没有这么多许可证。所以我需要在可用节点之间分配工作人员。
替代方案:
如果更容易,我们也可以考虑parfor
- 循环
parfor 1:M
%Vectorized calculation
end
其中parfor
创建的每个工作人员都分布在节点中。