b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

线程数与多核CPU之间的关系

电脑杂谈  发布时间:2020-08-28 06:06:09  来源:网络整理

cpu内核线程 并发数量_cpu的线程数量_java 获取cpu线程数量

每个人都在编写多线程程序. 您知道在具有多核CPU的服务器上有多少个线程更合适?

在这里,我们必须首先阐明CPU,内核和处理器数量的概念.

例如,当使用顶部查看负载时,按1查看CPU0〜CPUn. 这里的数字实际上是处理器的数量.

java 获取cpu线程数量_cpu的线程数量_cpu内核线程 并发数量

在使用cat / proc / cpuinfo看到的输出中,您可以看到cpu内核和处理器的概念.

这些概念之间有什么区别?

在澄清了这些概念之后,我们应该如何选择设置程序中的线程数

cpu内核线程 并发数量_cpu的线程数量_java 获取cpu线程数量

理论上,对于计算密集型任务,线程数应与CPU可以提供的并行度数相同. 这里的“并行数”应该使用物理核的数量还是处理器的数量?

讲事实.

我使用了2个CPU,每个CPU 12个物理核心以及每个物理核心2个逻辑处理器进行测试. 线程数分别为6、10、12、30、48和96.

cpu内核线程 并发数量_java 获取cpu线程数量_cpu的线程数量

可以看出,如果线程数超过处理器数(48)或少于物理核心数(24),吞吐量将受到极大影响. 因此,对于测试中计算量大的任务,线程数应设置为24至48.

具体来说,吞吐量和CPU负载在24(物理内核数)和48(处理器数)之间没有显着变化. 但是,“ 99”延迟缓慢增加(10%),而平均延迟则略有减少(4%).

还可以看到有关延迟的更具体的统计信息,随着线程数量的减少,延迟曲线的毛刺也会减少.

java 获取cpu线程数量_cpu的线程数量_cpu内核线程 并发数量

那么,为什么这里的“超线程”技术没有像理论上那样增加并行度,从而增加了吞吐量?

我认为可能是因为在我的程序(和大多数程序)中,各种计算组件(FPU \ ALU)的使用不统一. 通常,使用ALU占大多数,而使用FPU仅占少量. 因此,超线程技术并不会带来很大的并行度提升. 线程切换带来的消耗也抵消了这一点改进.

总而言之,对于计算量大的任务,通常建议将线程数设置为物理内核数. 具体来说,还需要对不同的过程执行相应的压力测试,以获得适当的参数选择.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-308514-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...