![探索高级 CPU 虚拟化:合并内核以增强性能](https://linux22.com/image/790990/%E6%8E%A2%E7%B4%A2%E9%AB%98%E7%BA%A7%20CPU%20%E8%99%9A%E6%8B%9F%E5%8C%96%EF%BC%9A%E5%90%88%E5%B9%B6%E5%86%85%E6%A0%B8%E4%BB%A5%E5%A2%9E%E5%BC%BA%E6%80%A7%E8%83%BD%20.png)
虚拟化专家!我有一个问题,与下面所示的潜在 CPU 虚拟化概念有关。这个想法是否有现有的实现,或者是否存在硬件限制?具体来说,我很好奇你们中是否有人遇到过 CPU 虚拟化,其中服务器 1 上的软件可以合并来自节点(节点 1 和 2)或从属机器的 CPU 内核,以创建具有明显更高内核数的 vCPU。目标是让在服务器 1 上运行的程序感知到更多的 CPU 内核(例如 16 个),而不是实际的 4 个或 8 个。
虽然我知道大数据可能采用类似的方法,但它通常涉及将程序分解为 map-reduce 机制。我的疑问是虚拟化软件本身是否有一种机制可以自动将程序可执行文件分解为块,将它们分发到节点 CPU(数据存储在内存中),并执行这些块。理想情况下,这个过程将由虚拟化软件处理,从而无需手动编程。
我很欣赏您对此事的见解。请随意分享您的评论,如果您知道任何其他相关群组或讨论论坛,请为我指明正确的方向。
答案1
是的,存在。性能非常糟糕,需要高端硬件——谈论多个 100g 网络链接。这也是一个笑话——尤其是考虑到你的数字。16 核是高端桌面服务器。我的个人服务器有 2x16——它们即将停产。获得合适的硬件总是更便宜。对于任何更大的东西,网络延迟、内存访问等都会让你崩溃。每隔一年就会出现一次,通常表明提问者对计算机内部运行方式缺乏基本的了解。
虽然我知道大数据可能采用类似的方法,但它通常涉及将程序分解为 map-reduce 机制。
不。它总是涉及作为独立计算机运行的不同计算机以及协同工作的软件。
我看到这种情况的唯一场景是在 GPU AI 训练中。这里的硬件方面非常残酷——我们谈论的是具有太比特网络连接的服务器(20+ 100g 链接)。你猜怎么着——软件堆栈针对这一点进行了优化,而你却要求它不要这样。