将性能负载分配到多台计算机上的软件?

将性能负载分配到多台计算机上的软件?

我家里有 4 台笔记本电脑。

我只使用其中一个,所以我想知道是否有软件可以将性能负载分配到多台计算机上?

示例 1:如果我启动一个编译过程,该过程将分配到所有 4 台计算机,并将编译时间缩短至 1/4。

我并不是在寻找一种可以将它们用作唯一监视器的软件(如 MaxiVista),而是使用它们的 CPU、RAM、硬盘、CD-ROM、USB 来扩展我的“主”计算机。

示例 2:如果我在其中一台笔记本电脑中插入 USB 设备/插入 DVD,则“主”计算机可以使用它。

对于旧笔记本电脑来说这是一件好事。

我认为这个词的意思应该是计算机集群。

有没有适合家庭用户的软件?

顺便说一下,我正在使用 Mac OS X Snow Leopard。

答案1

魔法子弹:OpenMosix。或者 Mosix。OpenMosix 仍然无法与现代 2.6 内核很好地配合使用,但如果您不介意运行 2.4 内核,那就去使用它吧。或者花点钱买 Mosix。Mosix 是一个很棒的系统,它可以将多台计算机变成一个 SSI(单系统映像)系统。这允许将 cpu/内存/proc 空间等视为一个。这是 HPC 系统的一种方法。还有一款很酷/很棒的商业产品,可以执行 vSMP 调用 ScaleMP。

我曾使用 OpenMosix 做一些有趣的事情。无需进行任何应用程序级别的更改。只需执行您的应用程序,Mosix 就会迁移进程。现在,对于编译,请使用多处理器选项,这样它将使用多个线程进行编译,并且线程将分发到其他 CPU。

如果您只是为了编译而这样做,那么只需使用 distcc。

答案2

确实没有灵丹妙药可以让你实现这一点。应用程序需要专门编写才能利用分布式 CPU/内存/IO/等。当我使用 Gentoo 时,我曾distcc在一堆闲置的主机上进行设置,这样我就可以在gcc编译时利用它们的空闲容量。我猜其他编译器也有类似的系统,但我不确定。

顺便说一句,关于您的示例 1:无论您使用什么技术,您都不可能达到 100% 的效率。总会有一些管理开销占用手头活动任务的周期。

答案3

使用 Linux 和 XP 机器作为代理的快速 OS X Xgrid:

http://www.jambot.com/blog/index.php?m=03&y=07&entry=entry070311-185623

相关内容