首页 文章

在NUMA机器上使用并行MATLAB的性能问题

提问于
浏览
2

我在Windows 7下的64核NUMA机器上运行内存密集型并行计算,每个插槽8个内核 . 我正在使用并行计算工具箱来做到这一点 . 我注意到一个非常奇怪的cpu加载模式:然后运行说36个并行MATLABs,第一个插槽上的内核完全加载,第二个插槽几乎完全加载,第三个插槽大约50%,依此类推 . 最后一个套接字通常几乎完全免费且什么都不做 . 同时运行超过12名并行工作人员似乎对所有员工的绩效产生了非常不利的影响 .

我试图尝试使用cpu亲和力,将不同的工作者固定到不同的核心 . 虽然它有助于简单的测试(即cpu加载模式在所有内核中变得一致),但它对我们的实际内存密集型计算没有帮助 .

我怀疑问题出在内存位置上 . 即所有内存都分配在第一个和第二个套接字上 . 这可以解释奇怪的CPU负载:操作系统轮胎使计算线程更接近数据 . 但我不知道如何直接证实这种怀疑,也不知道如何解决这个问题,如果这是真的 .

我在所有并行工作者中使用maxNumCompThreads(4),如果这很重要的话 . 超线程已关闭 .

2 回答

  • 2

    您应该只能使用Parallel Computing Toolbox运行12个本地工作人员 . 见the data sheet .

  • 0

    请注意,在R2014a中,删除了当地 Worker 数量的限制 . 见the release notes .

相关问题