我搜索过这个问题,但似乎没有得到公平的答案。
假设我不想创建一个具有 vCPU 的虚拟机,并且该 vCPU 必须有 10 个核心,但我只有 2 台计算机,每台计算机有 5 个物理 CPU 核心。
是否可以通过依赖这两个物理 CPU 来创建一个 vCPU,使其像常规一个物理 CPU 一样执行?
更新 1:假设我正在使用 virtualBox,术语 vCPU 指的是虚拟 cpu,这是一个众所周知的术语。
更新 2:我问这个问题是因为我正在对 HPC 集群中的动态配置进行一些研究,我想知道“动态”这个词是否真的意味着从不同的硬件(例如裸机)动态分配虚拟 cpu服务器。我不知道我是否在错误的地方搜索,但没有人在文档中真正回答这个问题。
不幸的是,我必须首先说我完全不同意 OSGX 的答案(我必须从这个开始,因为我的答案的其余部分取决于它)。有记录的案例表明,将多个物理系统的 CPU 能力聚合到单个系统映像中效果很好。甚至关于 ScaleMP 的评论...解决方案的范围可以从“使目标应用程序变慢”到“使目标应用程序非常非常慢”...- 要使这一说法无效,只需检查 SPEC CPU 基准测试列表中评级最高的机器,看看使用 ScaleMP 的机器是否在此基准测试中的性能排名前 5 名的 SMP 中。
此外,从计算机体系结构的角度来看,所有大型机器本质上都是具有特殊结构(Xbar、Numalink 等)和一些用于管理缓存一致性的逻辑/芯片组的小型机器的集合。当今的标准结构(PCIe 交换、InfiniBand)与那些专有的 SMP 互连一样快,甚至更快。 OSGX 是否会声称这些 SMP 也“非常非常慢”?
与任何技术一样,真正的问题是你想要实现什么目标。大多数技术都适合一项任务,但不适用于另一项任务。如果您尝试构建一台大型机器(例如,将 16 台服务器(每台服务器有 24 个核心)组合成一台 384 核 SMP),在其上运行小型虚拟机(每个虚拟机使用个位数的 vCPU),那么对于仅运行高吞吐量计算 (HTC) 作业的底层基础设施,这种 SSI 解决方案可能会非常有效 - 就像 SPEC CPU 一样。但是,如果您运行的线程并行软件过度使用需要所有内核之间进行密集通信的序列化元素(屏障、锁等),那么您可能不会看到任何好处。
至于线程上的原始问题,或者更确切地说,作者的“更新2”:...我问这个问题是因为我正在对 HPC 集群中的动态配置进行一些研究...事实上,目前还没有很多技术可以通过集群中的 CPU 创建单个系统。前面提到的来自 ScaleMP 的技术可以做到这一点,但仅限于物理服务器粒度(因此,如果您有一个包含 100 台服务器的集群,每个集群节点有 24 个核心,那么您可以“动态”创建 48 个核心的虚拟机(2集群节点)、72 个核心(3 个集群节点)等,但您无法创建具有 36 个核心(1.5 个集群节点)的机器,也无法组合来自不同节点的一些空闲 CPU - 您要么使用来自要组合成虚拟 SMP 的节点,或者根本没有。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)