MATLAB Parfor 在 18 核 PC 上比 10 核 PC 慢 运行

MATLAB Parfor is running much slower on a 18-core PC than a 10-core PC

我目前正在 运行 计算密集型金融交易测试;该测试有 503 个独立循环。我办公室有两台 PC,一台是 10 核 Intel i9-10900k @ 3.7GHz 和 128GB DDR4;另一个有 18 核 Intel i9-7980XE @ 3.4GHz 和 128GB DDR4。

为了加快整个处理速度,第一个10核PC在parfor中运行loop 1-to-189;第二台 18 核 PC 在 parfor 中运行循环 190-to-503。

一天下来运行,我发现10核的PC跑了25圈,18核的PC只跑了4圈。我发现很好奇,谁能知道这个问题的原因?

P.S。 10 核 PC 运行 MATLAB 2020b,最新更新为 MOSEK 9.2.35 18 核 PC 运行 MATLAB 2021a,最新更新为 MOSEK 9.2.36

我也查了taskmgr.exe,不像10核的PC,我发现18核的PC,10个matlab任务在一组,另外10个任务是分开的....

非常感谢 Michal Adamaszek,在 parfor 循环中使用 MOSEK(内点或整数规划)时,最好关闭 MOSEK 中的多线程,否则默认情况下,MOSEK 将使用所有内核.

param.MSK_IPAR_NUM_THREADS = 1;
param.MSK_IPAR_INTPNT_MULTI_THREAD = 'MSK_OFF';