matlab - 多个工人,每个工人都有多个核心
问题描述
我有一个从 MATLAB 调用的外部 MEX 进程。此代码是并行编写的,可以有效地使用 6 个内核(12 个线程)。
我的机器有 12 个内核(24 个线程)。无论如何要创建 2 个并行工作程序(每个使用 6 个内核/12 个线程),然后每个工作程序同时调用该 MEX 程序。MEX 程序是线程安全的。
谢谢!
解决方案
您可以直接在集群实例上设置您的NumThreads
属性,也可以使用集群配置文件管理器修改集群配置文件。这是编程方式:parallel.Cluster
c = parcluster('local');
c.NumThreads = 3;
parpool(c, 2);
spmd, maxNumCompThreads, end % each worker gets the answer 3
理想情况下,您的 MEX 代码应该使用 的结果maxNumCompThreads
来确定它应该使用多少线程。
推荐阅读
- javascript - react-select 无法在搜索字段中粘贴值
- javascript - 我可以等待 DOM 事件解决吗?
- swift - Cocoapods 在最新的 Xcode 11.2.1 版本上导致错误
- javascript - 将函数作为道具传递给 Typescript React 功能组件
- algorithm - 交换数在排序算法分析中的重要性 - 三路分区
- x86 - Multiboot 1 引导信息总大小
- html - 带有顶栏、侧边栏和重复内容的 CSS 网格
- swiftui - 点击 NavigationLink 后如何执行操作?
- c++ - c++ 标准是否指定了运算符&&(内置)的评估顺序?
- google-cloud-platform - 创建 TPU 节点时的“IP 地址范围”是什么?