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