V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
NeverBelieveMe
V2EX  ›  程序员

关于 cpu,多核多线程的问题有些不解

  •  
  •   NeverBelieveMe · 2017-11-28 10:10:52 +08:00 · 5540 次点击
    这是一个创建于 2586 天前的主题,其中的信息可能已经有所发展或是发生改变。
    操作系统的并发处理任务,是通过多个进程,线程之间的切换来实现并发的。那么 4 核 8 线程的处理器,同一时间单位下处理任务量到底是 4 个还是 8 个?
    15 条回复    2017-11-28 15:06:29 +08:00
    silencefent
        1
    silencefent  
       2017-11-28 10:18:48 +08:00   ❤️ 2
    1 核有难 7 核围观
    mrsatangel
        3
    mrsatangel  
       2017-11-28 10:29:07 +08:00 via iPhone
    从操作系统角度来看,同一时间可以调度 8 个 task
    acgnsstech
        4
    acgnsstech  
       2017-11-28 10:30:24 +08:00   ❤️ 1
    CPU 的时间肯定是一定的~~

    与其相信超线程 不如提升主频的频率。

    一般情况下 做密集型计算 几个核心就开几个线程

    intel 的超线程技术 就是扯淡的 效果并不明显,尤其是笔记本上的 CPU。。

    超线程 并不适用于密集型计算 只是更好地处理通常的多个任务。。
    dychenyi
        5
    dychenyi  
       2017-11-28 10:37:54 +08:00
    就当 cpu 是个黑盒 确实有 8 个核不就行了。 大部分应用 8 线程确实比 4 核快就对了。
    coderluan
        6
    coderluan  
       2017-11-28 10:51:50 +08:00
    4 核 8 线程的处理器,对于操作系统来说就是 8 核处理器,这样处理任务量就是 8 个,只不过这 8 个的性能做不到 4 个的 2 倍。
    Shura
        7
    Shura  
       2017-11-28 10:56:12 +08:00
    8 个,你可能需要: https://www.zhihu.com/question/29679344
    fghjghf
        8
    fghjghf  
       2017-11-28 11:00:38 +08:00
    四核八线程。就是 4 个物理核。一瞬间只能有 4 个并行线程。如果进程请求运算的资源达不到瓶颈,那就可以支持 8 个并行。理论上可以有无限个并发的,不过 Linux 只有 65535 个端口号。超线程只不过根据你逻辑处理达不到瓶颈的情况下,可以多出一倍的并行量。如果运行大型项目,还是建议你根据物理核去判断。
    enenaaa
        9
    enenaaa  
       2017-11-28 11:10:48 +08:00
    所谓 4 核 8 线程。 多出来的 4 个线程是用超线程技术实现的。 对操作系统来说能同时执行 8 个任务。 但在 cpu 层面,也不过是在 io 等待时执行另一个线程,把碎片时间利用起来。对 cpu 来说有几核就能同时执行几个任务。
    tidyoux
        10
    tidyoux  
       2017-11-28 11:11:38 +08:00
    逻辑上是 8 个,实际上是 4 个。
    http://blog.csdn.net/zolalad/article/details/28393209
    zjqzxc
        11
    zjqzxc  
       2017-11-28 11:15:14 +08:00
    看角度

    性能:相对于纯 4 核不带 HT 的 cpu 来说,总体性能介于 4 到 8 个之间( intel 早期说法是可以提高 15%~30%)

    CPU:超线程的意思是,取指阶段可以并行,但运算阶段不能并行。如果从运算的角度来考虑,仍然是 4 个

    操作系统:8 个
    3dwelcome
        12
    3dwelcome  
       2017-11-28 11:18:19 +08:00
    超线程对于多核同事运行的性能,是很伤的。

    举个例子,用单核霸者 i3 cpu 运行 super pi, 算 100 万位,看用时。

    一个线程是 12 秒完成计算。
    二个线程同时计算, 15 秒
    三个线程同时计算, 19 秒
    四个线程同时计算, 23 秒

    而如果你用服务器 cpu, e5 那种,是不会随着线程增加,明显降低性能的。
    zado
        13
    zado  
       2017-11-28 12:07:45 +08:00
    @3dwelcome 有些运算不能分解并行,单线程是会比多线程快,因为线程切换会花时间,这并不是超线程的副作用。
    3dwelcome
        14
    3dwelcome  
       2017-11-28 13:36:24 +08:00
    @zado 同样的频率下,i3 和 i7 为啥价格差那么多? intel 又不傻,一分价格一分货,i3 超线程只是让电脑有 4 个线程而已,至于性能,intel 微微一笑,呵呵哒,给足钱了才够快。
    Neveroldmilk
        15
    Neveroldmilk  
       2017-11-28 15:06:29 +08:00
    超线程只是充分利用多级流水线而已,不是真正的八个物理核。所以八核不开超线程的 Ryzen 吊打 6 核 12 线程的 I7。对不起,扯远了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1248 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:54 · PVG 01:54 · LAX 09:54 · JFK 12:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.