虚拟化与云计算硬核技术内幕 (3) —— 苟利国家生死以,岂因福祸避趋之

2022-09-08 16:39:55 浏览数 (1)

在上一期,我们提到,挑选模特的一个潜规则是,想让买家秀和卖家秀基本一致,就需要挑选头身比较小的高挑妹子。类似地,想让数字电路的实际波形尽量减少畸变,上升沿和下降沿更陡峭,也需要提升数字电路的电压。

但是,随着数字电路电压的提升,数字电路的功耗会与电压的平方成正比提升,结合主频提升的因素,实际上集成电路的功耗W,会与频率f成三次平方关系。这极大地制约了CPU处理能力的提升。摩尔定律的奇迹还能继续吗?

答案是肯定的。众所周知的实例表明,无论是依靠个人的奋斗,还是跟随历史的进程,只要做到“苟利国家生死以,岂因福祸避趋之”,做出自己一点微小的贡献,就可以在大家都担心自己的安危时,能够一秒一秒地延续自己的生命。

因此,人类无论遇到什么样的困难,都不会轻易抛弃摩尔定律。既然提升主频遇到了困难,那么,我们可以通过增加CPU核心的数量来提升计算力!

我们知道,在集成电路上增加CPU核心,可以在不提升CPU主频的前提下,通过增加集成电路的面积和晶体管数量,来提升CPU的计算性能。这样一来,我们就实现了功耗与计算力基本成线性正相关,从而让摩尔定律得以续一秒!

这种通过多核技术提升计算性能的方法,从2004年 Intel Core架构开始迅速普及。除Intel x86处理器外,MIPS,PPC和ARM等RISC架构的处理器,也纷纷出现了多核款型,如RMI(目前被Broadcom收购)、Cavium(目前被Marvell收购)、Freescale(目前被NXP收购)、MTK和Qualcomm等,都推出了多核RISC处理器,广泛用于通信设备、消费电子设备等场合。

而在对性能要求最高的服务器中,最常见的还是Intel的x86 Xeon (至强)系列。在2020年Intel推出的Xeon ScalablePlatinum系列处理器中,一颗物理CPU的内核数量可达56个。在超线程(Hyper Thread)技术的加持下,单台4路服务器上,操作系统可见的vCPU数量可达448个!

然而,我们知道,仅仅有足够多的CPU内核,只能在测试程序上跑出漂亮的分数。想在实际应用中将这么多CPU内核的计算能力充分发挥,就需要在程序设计中,有效地将计算任务分解到这么多的CPU内核上。这就是所谓的并行计算。

不幸的是,在多核处理器出现时,计算机科学的发展,还没有从编程框架、编程语言、编译器和操作系统API等一系列工具链层面解决并行计算问题。由于绝大多数应用程序并没有对多核做有效的优化,容易出现“一核有难,八核围观”的情况,或者,多CPU竞争一个资源时(最常见的是自旋锁),会出现CPU排队的情况:

(原图由作者拍摄于印度班加罗尔,背景为莫迪废除流通的旧卢比纸币,新纸币发行量远低于社会需求,导致印度居民排长队取钱)

因此,我们需要合适的方法来组织这数量众多的CPU内核,使得它们能够有效地协同工作。虚拟化技术,就是这种将数量众多的CPU内核组织起来为人民服务的技术,它让摩尔定律的寿命得以不断延续!

那么,虚拟化技术究竟如何实现众多处理器内核有组织地为人民服务呢?

请看下期分解。

0 人点赞