gpt4 book ai didi

c# - 并行代码可扩展性差

转载 作者:太空狗 更新时间:2023-10-29 22:06:40 25 4
gpt4 key购买 nike

最近我一直在分析我的并行计算在 16 核处理器上的实际加速情况。我得出的一般公式——线程越多,每个内核的速度越低——让我很尴尬。这是我的 cpu 负载和处理速度的图表:

picture1

因此,您可以看到处理器负载增加,但速度增加得更慢。我想知道为什么会发生这种影响以及如何获得不可扩展行为的原因。我已确保使用服务器 GC 模式。我已确保只要代码仅执行以下操作,我就会并行化适当的代码

  • 从 RAM 加载数据(服务器有 96 GB 的 RAM,不应命中交换文件)
  • 执行不复杂的计算
  • 在 RAM 中存储数据

我已经仔细剖析我的应用程序,没有发现瓶颈 - 看起来每个操作都随着线程数量的增加而变慢。

我卡住了,我的场景出了什么问题?

我使用 .Net 4 任务并行库。

最佳答案

你总会得到这种曲线,它叫做Amdahl's law .
问题是它多久会趋于平稳。

您说您检查了代码中的瓶颈,我们假设这是正确的。然后还有内存带宽和其他硬件因素。

关于c# - 并行代码可扩展性差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com