如何共享 CPU 或 RAM?

MJH*_*MJH 21 networking cpu

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

ubi*_*con 21

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

编辑:

如果你想设置一个集群,我会推荐这里的教程。大约一年前,我按照本教程制作了一个集群,并且运行良好。该教程有点旧,因此有些文件可能与教程所说的不完全相同(有时文件会在不同/较新的 Linux 发行版中移动)但如果您对 Linux 有一点点熟悉,那应该不是问题。本教程使用旧版本的 MPI,但我使用的是最新版本,没有任何不容易解决的问题。根据您在做什么,实际上可能有一个程序可以利用 MPI。我知道有一些视频编码和数字处理程序利用了可以从通用来源下载的 MPI。

  • @MJH 如果您想使用 Windows,那么您只需要一个适用于 Windows 的 MPI 库,但概念是相同的。[MPICH](http://www.mcs.anl.gov/research/projects/mpich2/) 适用于 Windows,或者您可以使用 Windows HPC(已内置 MPI 传导性)构建您的 Windows 集群,如果您有一些硬币降低。虽然这确实让您可以使用 Windows,但您仍然必须使用为 MPI 编写的程序,目前没有办法解决这个问题。 (3认同)
  • 感谢您的回答 - 参考教程似乎已将地址更改为 http://www.uiowa.edu/mihpclab/hpcSystsemTechnicalReport/HowToBuildAClusterG.pdf ...干杯! (2认同)

And*_*aKo 9

您可以使用 RAM 磁盘共享 RAM,但这看起来就像共享普通磁盘一样,只是这些磁盘位于另一台计算机的 RAM 中。一台计算机没有直接使用另一台计算机的 RAM 的方法,就好像它是它自己的 RAM 一样,但是有一些方法可以使用其他计算机的 RAM。更多关于下一段。

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

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


Sco*_*ain 5

有没有软件可以在我的网络中共享我的应用程序?不需要外部网络!(例如,我想渲染一个文件,我的电脑在 7 天内渲染这个,但我将它共享到我的网络并渲染减少到 1 天?- MJH 2011 年 3 月 12 日 1:19

您陷入了XY 问题,您不应该问“我如何共享 cpu 和 ram accros 计算机”,而是“我如何使用多台计算机来使使用 ZZZZZ 的渲染速度更快?”

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

举几个例子,免费的 3D 软件Blender支持分布式渲染,您可以让多台计算机一起工作以生成一个输出。如果你正在做视频渲染,一些快速的谷歌搜索发现了开源项目MediaEncodingCluster,它允许你使用多台计算机渲染视频和音频文件。


小智 5

我知道的唯一允许共享 CPU/RAM 的操作系统是 plan9。在那里您几乎可以导出/安装任何东西。当然,这并不意味着性能很好。