如何共享 CPU 或 RAM?

如何共享 CPU 或 RAM?

在网络中,我们共享文件(磁盘驱动器)或数据库。但是我们如何通过网络共享 CPU 或 RAM。

答案1

为此,访问 CPU/RAM 资源的程序必须专门设计为访问所述资源。以这种方式设置的系统称为集群,资源共享的典型方式是使用称为 MPI(消息传递接口)的协议。它是免费下载的,在 Linux 上使用它可以以最低的成本产生强大的集群(甚至可能是超级计算机),但同样,除非您有专门设计为利用 MPI 的程序,否则它是无用的。有一些很好的集群教程,如果您仍然感兴趣,您应该查看一个。

编辑:

我会推荐这个教程这里如果您想设置集群。大约一年前,我按照本教程创建了一个集群,它运行得很好。本教程有点旧,所以有些文件可能与教程中说的并不完全一致(有时文件会在不同的/较新的 Linux 发行版中移动),但如果您对 Linux 有一点点熟悉,那就不是问题了。本教程使用的是较旧版本的 MPI,但我使用了最新版本并且没有难以解决的问题。根据你正在做的事情,可能确实有一个可以利用 MPI 的程序。我知道有一些视频编码以及利用 MPI 的数字运算程序,可以从通用来源下载。

答案2

您可以使用 RAM 磁盘共享 RAM,但这看起来就像共享普通磁盘一样,只是这些磁盘位于另一台计算机的 RAM 中。一台计算机无法直接使用另一台计算机的 RAM,就像它是自己的 RAM 一样,但有一些方法可以使用其他计算机的 RAM。下一段将对此进行详细介绍。

至于 CPU 共享,这是可能的,但没有统一的标准。您不能只是共享它并让另一台计算机占用所需的资源。相反,您需要专门设计的应用程序,这些应用程序可以同时在多台计算机上运行。这通常称为分布式计算,并被一些研究项目使用,例如 SETI@Home、Einstein@Home、Climateprediction.net 等。

基本上,程序的工作方式是,有一个中央服务器来分配需要完成的工作。网络上的计算机从中央计算机下载工作单元并进行处理。之后,中央计算机从客户端接收结果并将它们合并为一个统一的结果。这样,计算机就通过网络“共享”CPU 和 RAM 资源。这样做的缺点是,程序需要以通过网络工作的方式进行,而目前分布式计算在计算机的常见用途中还不够流行,因此只有少数专门的程序支持它。另一方面,它通常用于科学目的,因为获得大量个人电脑或 playstations 3 比获得大型计算机的访问权限更便宜。

答案3

有没有软件可以在我的网络中共享我的应用程序?无需外部网络!(例如,我想渲染一个文件,我的电脑需要 7 天才能渲染完成,但我将它分享到我的网络,渲染时间就缩短到 1 天? – MJH Mar 12 '11 at 1:19

你已经陷入XY问题,你不应该问“如何在计算机之间共享 CPU 和 RAM”,而应该问“如何使用多台计算机来加快使用 ZZZZZ 的渲染速度?”

这在很大程度上取决于你使用的软件和渲染的内容(你是转码视频,或者您正在渲染 3D 模型/视频?)。

举几个例子,免费的 3D 软件搅拌机支持分布式渲染你可以让多台计算机协同工作以生成一个输出。如果你正在做视频渲染,快速谷歌搜索一下,就会发现开源项目媒体编码集群允许您使用多台计算机渲染视频和音频文件。

答案4

通过网络共享 CPU/RAM 来执行任务将是一个不错的功能。目前,我们仍然受一些旧观念的束缚,将程序保留在发生事件的框中,但我们可以允许同一台机器上的多个 CPU 访问相同的代码片段。我们确实有一种方法(至少)可以执行类似的操作。网页上的 Java 通过使用服务器和客户端来工作,但它仍然锁定在服务器-客户端方式来执行操作(其中服务器保存大部分数据)。我们需要能够以与拥有多个 CPU 时相同的方式将任务分配给机器(除了执行工作的机器需要分配程序片段和数据片段。如果任务本身不是简单性质的,这确实会给网络带来更重的负载,并可能导致形成新的瓶颈。我喜欢这个想法,虽然它是重复的任务,但方法很像密钥挖掘。

相关内容