我正在使用进行繁重的数学计算Math.Net Numerics
内部平行Parallel.For
block.
当我在具有 4 个核心 (2*2) 的本地系统中运行代码时,它使用了全部 4 个核心。
但是,当我在具有 8 个核心(4*2)的开发服务器中运行相同的代码时,它仅使用 4 个核心。
我尝试设置 MaxDegreeOfParallism,但无济于事。
知道为什么所有核心都没有被利用。
下面是示例代码。
Parallel.For(0,10000,(i)=>
{
// heavy math computations using matrices
});
From MSDN
默认情况下,For 和 ForEach 将利用底层调度程序提供的线程数,因此更改默认值的 MaxDegreeOfParallelism 仅限制将使用的并发任务数。
我阅读文档的方式:如果底层调度程序仅提供单个线程,则设置MaxDegreeOfParallelism > 1
仍然会导致单个线程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)