首页 新闻 会员 周边 捐助

软件运行的并行度由电脑的核心数决定么?

0
[待解决问题]

比如我的电脑是8核的,是不是最多并行8个

shuai7boy的主页 shuai7boy | 菜鸟二级 | 园豆:225
提问于:2020-05-01 18:31
< >
分享
所有回答(3)
3

物理上是的。

但是实际感官上不是的,现代OS采用时间片的方式运行。你可以创建800个进程,在1秒内这800个都可以雨露均沾,看起来就像都在运行。但是如果把时间尺度缩小到一个CPU周期,确实是最多只有8个在运行。

Timetombs | 园豆:3959 (老鸟四级) | 2020-05-02 09:09
0
  • 物理cpu数:主板上实际插入的cpu的个数(die)。
  • cpu核数:单块CPU上面能处理数据的芯片组(有完整的指令译码器和ALU)的数量。
  • 逻辑核数:简单来说,使用超线程技术,可使处理器中的1颗内核,如2颗内核那样在操作系统中发挥作用。

一般说的8核,并不是指你的物理cpu个数,而是你的逻辑核数。

  • 如果操作系统是windows,可以通过cpuz软件简单查看物理cpu个数,cpu核数,逻辑核数的信息。
  • 如果操作系统是linux/unix,可以通过这个:cpu核如何计算? 简单查看。

结论:如果8核指的是逻辑核数(一般计算机营销宣传的也是这个),同一个时间点,并行运行简单来说有8个线程,严格意义上只有4个线程(超线程技术本质上并没有增加cpu核的个数,仅仅是在cpu周期中实现了在流水线停顿(stall)期间可以去改为执行别的程序的指令,充分发挥CPU的算力)。

宗离 | 园豆:206 (菜鸟二级) | 2020-05-05 08:38
0

CPU 作业调度, 这个文章你可以看看, CPU是按时间片分给各任务的, 不是说8核就只能同时运行8个任务

风浪 | 园豆:2996 (老鸟四级) | 2020-05-06 10:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册