gpt4 book ai didi

c# - ParallelQuery 核心平衡

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:31 24 4
gpt4 key购买 nike

我有 200,000 个任务将并行运行以提高速度。我正在使用 ParallelEnumerable.Range(0, 200000).Sum( a =>/*do_something*/)

随着任务计数器从 0 变为 200,000,所需的迭代次数会减少。 a=0 的任务需要最多的迭代次数,而 a>100,000 的任务完成一次迭代或没有迭代。

因此,随着任务的进行,我的四核机器没有达到最大 CPU 使用率峰值。似乎工作负载在启动时分配给所有 4 个核心,并且一些核心较早进入空闲状态,因为它们的部分主要是具有高 a 的任务。 cpu 利用率从 100% 开始,但逐渐下降到 75~50~25%。我怎样才能从头到尾充分利用 CPU?

最佳答案

非常简单的 self 回答:将 ParallelEnumerable.Range(0, 200000) 替换为 Enumerable.Range(...).AsParallel() 足以解决这个问题问题。工作负载似乎在 Enumerable.Range(...).AsParallel() 中动态分布。

关于c# - ParallelQuery 核心平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492223/

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