是否可以合并2台计算机的处理能力?


Answers:


11

在运行的程序可以以某种方式使用第二台机器执行代码的地方,这不是透明的,因为它们在逻辑上是分开的,CPU无法相互通信或访问彼此的内存。

这并不意味着您无法结合处理能力:

  1. 特定软件可能具有可以在其他计算机上执行的组件,例如蛋白质折叠,SETI @ home。这些往往是专门的,即您不能启动Excel并告诉它使用另一台计算机进行计算。
  2. 如果您要执行处理器密集型任务,则可以使用辅助计算机来运行它们,例如对视频流进行编码/重新编码。

如果您希望以任何方式利用辅助计算机,则能够对其进行远程控制至关重要。做到这一点的两种方法是通过某种远程访问(RDP,VNC)或通过诸如synergy +之类的方法。


1
举例来说,我的笔记本电脑上有4GB的RAM,PC上有4GB,RDP是否可以让我以8GB的RAM运行虚拟的progran?
TGamer '17

5

我最常用的行之一-是和否!

是的,这是可能的-对于某些设计为以这种方式工作的应用程序。(通常称为集群- 在此处进一步阅读

不,(至少据我所知)不可能将两台现成的计算机取下,“绑”在一起,以获得组合的内存,处理能力和其他所有功能。


1
@〜quack是的,我对某些应用程序说过……由于该问题被标记为Windows-7,我认为他的意思是每天要有任何现成的程序的计算机。……无论如何-Beowulf群集不需要专门编写的应用程序?...我不是专家,从未使用过一个应用程序,但是我很快阅读了beowulf.org/overview/index.html(尤其是后两段)
William Hilsum 2010年

抱歉,在重读后删除了我之前的评论,并注意到您已经链接到集群概念。beowulfs是围绕现成的组件设计的,并且是将多个系统“绑定”在一起的一种方式,但是您说对了,它们确实不适用于并非专门为它们设计的程序。
奎克吉x德

4

很有可能!但是从您问题的简单性来看,我认为您只想运行一个程序即可神奇地使您的计算机快两倍,而这是不可能的。

您需要了解,程序在运行时会通过促使CPU在HDD,RAM和CPU寄存器以及各种组件(例如视频卡或网卡)上的地址之间移动内存来维护其状态。使用另一台计算机上的CPU来帮助您的问题在于它需要访问相同的内存。在另一台计算机上维护计算机内存的镜像需要太多的开销,以至于无法达到试图添加另一台计算机以获得性能的目的:)

但是可以在多台计算机之间分配的事物类型是图像渲染或可以独立工作的一些数学计算。


3

如果您要寻找的是一种将两台PC的处理能力结合在一起的方法,那么“最简单”的方法是使用VMWare ESXi等软件将它们都配置为虚拟机主机(请注意,这将要求设备以具有兼容的硬件)并创建资源组或群集,并创建使用两台计算机的资源的虚拟机。这不会使您获得2倍的完整速度(由于虚拟化,您将失去资源),并且由于可能的兼容性要求而只能提供有限的解决方案,但这是对问题最“正确”的答案。虚拟机将像一台PC一样工作,两台主机的处理能力都将减去维持虚拟化所需的开销。


恐怕主机之间的通信将成为瓶颈。
gronostaj

1
是的,主机之间的通信可能会成为瓶颈,这是所涉及开销的一部分。非千兆网络将是造成这种情况的主要原因,但是鉴于廉价和多产的千兆可用性,我认为这并不是特别不利。但是,所有网络分布式处理都是如此,与远程过程调用和专用于(无论如何必须)网络分布式计算的自定义编写的应用程序相比,VM是一种更为实用的方案,其复杂度大大降低。
乔治·斯派斯兰

2

我同意其他答案:

  • 如果您有一个庞大的,多页的Excel工作簿,并且希望能够以两倍快的速度运行Excel(更新公式和方案,运行宏等),那么您就不走运了。
  • 如果您有一个易于分区的自定义应用程序,例如查找从1到1,000,000的每个整数的平方根,那么应该很容易将问题分解为多个部分并进行分发。
  • 如果您有一个自定义应用程序,例如计算π(pi)的前1,000,000位,那么您可以做得到,只要您对问题空间有足够的了解。

如果您正在谈论开发在分布式(多计算机)环境中运行的软件,则有以下几点建议:

  • 使用远程过程调用(RPC)。正如您可以将主机设置为文件服务器或Web服务器一样,RPC允许您创建一台机器,实质上就是一台CPU服务器。从概念上讲,您将有一台主计算机,这将是RPC客户端,并且它将调用将在服务器上透明执行的库函数。以最简单的形式,这种架构不会给您带来任何性能上的好处,因为任何时刻都只能执行一个CPU。但是,在异步模型中,客户端可以在服务器上启动远程过程,然后在服务器运行时执行其他操作。
  • 使用为并行处理设计的语言,例如Unified Parallel C(UPC)。这是C语言的扩展,具有用于分布式数据和同时执行的功能。参考文献:
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.