是否有一个任务调度器非常适合在具有超线程的处理器上进行浮点计算

本文关键字:处理器 计算 超线程 任务调度 有一个 非常 是否 | 更新日期: 2023-09-27 18:04:28

我想使用TPL来管理对英特尔IPP或MKL库的调用。当然,这些都是浮点计算密集型指令。由于超线程每个内核只分配一个浮点线程,我想要一种智能调度任务的方法。

是否有一个任务调度器非常适合在具有超线程的处理器上进行浮点计算

这不是超线程的工作方式。没有这样的"赋值",也没有"每个核心浮点线程"的概念。内核动态地选择一个可用的浮点执行单元。它们有好几个,它们没有相同的能力。拥有多个执行引擎是超线程工作的首要原因。人为地试图绕过可能是超线程的逻辑内核并不会使它更快,反而会使它变慢,因为您很可能会绕过使用其他空闲引擎的机会。

从你的另一个问题中我知道你实际上还没有这个工作。所以这很可能是一个过早优化的例子。先让它运行,看看它是否足够好。如果没有,那么选择更好的硬件,例如Xeon类处理器。

为了使IPP FFT有效和高性能,我必须拆分出尽可能多的任务,每个包的内核数乘以包的数量。

启用NUMA节点后,另一个可伸缩性问题必须通过在应用程序配置文件中启用gcServer来解决。这似乎可以确保在每个NUMA节点上均匀地分配内存。

(启用HT…)启用Intel TurboBoost后,我看到CPU利用率低于50%,通常低至35%。一旦TurboBoost关闭,我看到50%的CPU负载一致。

很高兴看到,在。net 4.5任务并行库中,服务器类性能调整是外部化的。如果能永远免费得到,那就更好了。

详细信息:在双Xeon E5 v1平台上与Server 2k8 R2 SP1 Enterprise进行了测试。