局域网SDN技术硬核内幕 - 前传 突破多核的瓶颈——虚拟化

在前一篇《局域网SDN技术硬核内幕 - 前传 多核技术为摩尔定律延寿》中提到了,通过多核可以突破主频物理限制的瓶颈,提升单台计算机的计算能力。在Intel的至强处理器平台上,单台计算机的核数可达200以上。

但是,如果解决不好多核之间的并发协作,则会出现“一核有难,八核围观”的画面:

多gpu虚拟化 多对一 多核与虚拟化技术_虚拟化技术


这是为什么呢?

原来,现在商用的操作系统和编译器,还没有做到对多核处理器进行充分的优化。没有经过专门的多核编程训练的程序员,是难以设计出能让多核良好地并发执行计算的程序的,甚至,对于多核同时访问同一资源的情况,会引入很多难以排查的错误。
那么,如何解决这一问题呢?
我们想到了算法理论中著名的方法——分治(Divide & Conquer),即:将一个规模大的问题,分解为多个规模小的问题并且解决之。
对于大规模多核计算机,我们能否把它拆分成若干个单核/双核/四核等小规模计算机,并使其分担并发计算任务呢?

答案是,通过虚拟化技术可以解决这一问题。

虚拟化技术的翘楚——VMWare,最初是通过虚拟化技术解决在同一台计算机上同时运行异构操作系统的问题。然而,在多核时代,它绽放出了新的光芒。

如果,将一台拥有数十个处理器内核的服务器被虚拟化为数十个虚拟机,那么,在每个虚拟机上运行的程序,根本无需对多处理器做任何优化,就可以高效并发执行!

当然,我们还需要一个节点为多个虚拟机做任务分发。由于任务分发本身计算量不是很大,因此也可以由一个虚拟机来执行。如下图。

多gpu虚拟化 多对一 多核与虚拟化技术_SDN 虚拟化 网络_02

正是由于虚拟化技术可以大大提升多核计算机的工作效率,近十年来,虚拟化软件成了数据中心的标配,除VMWare大发横财以外,基于Linux的开源虚拟化软件KVM也炙手可热。以H3C CAS为代表的商业发行版KVM,更是在市场上赢得了各行各业客户的认可。