【问题标题】:Is there a task scheduler that is well-suited for floating-point calculations on processors with hyper-threading?是否有非常适合在具有超线程的处理器上进行浮点计算的任务调度程序?
【发布时间】:2013-09-26 23:05:30
【问题描述】:

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

【问题讨论】:

    标签: c# floating-point task-parallel-library .net-4.5 hyperthreading


    【解决方案1】:

    这不是超线程的工作方式。没有这样的“分配”,也没有“每个核心的浮点线程”的概念。内核动态选择可用的浮点执行单元之一。其中有几个,它们没有相同的功能。拥有许多执行引擎是使超线程首先工作的原因。人为地尝试绕过可能是超线程的逻辑内核并不会使其更快,它会使其变慢,因为您很可能会绕过使用其他空闲引擎的机会。

    我知道你的其他问题实际上还没有这个工作。所以这很可能是过早优化的情况。让它先运行,看看它是否足够好。如果缺少,则继续选择更好的硬件,例如 Xeon 级处理器。

    【讨论】:

    • 我得到了它的工作,并将立即更新另一个问题。同时,是否需要链接有关 HT 工作方式的相关描述?
    【解决方案2】:

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

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

    (启用 HT...)启用 Intel TurboBoost 后,我​​发现 CPU 利用率低于 50%,通常低至 35%。关闭 TurboBoost 后,我​​一直看到 50% 的 CPU 负载。

    很高兴看到,在 .NET 4.5 任务并行库中,服务器级性能调整被外部化了。永远免费获得它会更好。

    详细信息:在配备 Server 2k8 R2 SP1 Enterprise 的双 Xeon E5 v1 装备上进行了测试。

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2015-06-07
      • 2021-02-09
      • 2020-02-15
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多