通过连接LAN中的许多二手PC来构建即兴的“超级计算机”


4

我正在不断开发一个简单但处理器密集的计算机程序,用于科学研究。拥有更高的处理速度真的很有帮助。现在我在2 GHz Intel Core Duo上运行Mac OS X 10.5.7,我的程序运行速度很慢。有一段时间我用Ubuntu在相当旧的笔记本电脑上运行它,运行速度提高了约20倍。

我在想的是,我可以在局域网上连接一堆运行linux的廉价二手电脑,并使用线程编程在计算机之间分配处理负载。我的节目是 令人尴尬的平行 ,即核心数量的线性增加应该导致计算速度接近线性增加。此外,程序大小,内存要求和HD要求几乎都是零,并且传递到主例程(在计算机之间)的信息量基本上为零。

所以我想知道的是,什么样的路障可能阻碍实施呢?它应该是非常简单还是没有?它会工作吗?此外,在购买二手电脑时,我应该考虑哪些因素?就我而言,是双核2GHz~ =单核4GHz?我认为根据经验,我应该选择我能找到的最便宜的多核处理器机器(最佳处理成本比)。


2
你考虑过Beowulf集群吗? en.wikipedia.org/wiki/Beowulf_cluster
Piskvor

2
小心你的保险丝!
Jens Erat

Answers:


3

警告:这里的大部分知识都是理论知识,需要根据具体需求提供事实支持

你可能/应该设置一个集群。如果您要使用新系统,最便宜的多核系统听起来是个不错的选择(如果您选择旧系统) 避免 PENTIUM IVs,除非您想要比处理更有效地加热房间。我认为双核2 ghz系统略好于单个4 ghz处理器,除非你有一个需要大量功率的线程(你不需要)。我注意到,一般来说,主流处理器的新版本通常往往比它们取代的更好,特别是最近,因为电源使用已成为一个问题。如果我想了解它的细节,我'看看各代处理器,以及它们的基准,以便更清楚地了解效率和功耗。

您可能想要考虑使用最小操作系统启动工作系统,使用PXE通过网络关闭标准映像以节省每个系统的存储 - 因为您的ram要求很少,您可能可以将整个操作系统置于ram中,因为你只是用它来做一件事

您可能需要具有能够在群集上运行的软件(IE,在设计时考虑到这一点 - 可能有 MPI ,有集群软件设置等。话虽这么说,我已经看到MASSIVE商品电脑阵列在一所大学连接在一起,因此它看似合理

另一方面,考虑大规模并行化是您的主要目标,并且您需要大规模并行工作负载,您可能需要考虑x86集群的替代方案 - ubuntu有一个 48核心集群 他们用手臂开发板构建(我认为一堆覆盆子pi系统会很有趣,而且如果你不介意一大堆奇怪的廉价系统那么功能非常强大)。


1
我喜欢几百台Raspberry Pi机器机架在一个集群中处理数字的想法(可能是“蒲式耳”?)。
Shinrai

2

Journeyman Geek关于设置自己的集群有很好的观点,但我还想补充一点,根据您的工作量,使用类似的东西可能会更便宜 弹性地图 - 减少。 如果您的工作量可以转入 的map-reduce 你应该注意的问题。考虑到购买电脑,电力,冷却和维护成本的成本,在亚马逊上运行它可能更便宜/小时(亚马逊最低标准等级每小时0.10美元,如果使用当前现货每小时0.045美元)实例价格))

如果你愿意做更多的努力,你可以使用你自己的并行处理引擎,并使用微实例甚至更便宜(完整实例每小时0.02美元,当前现货价格每小时0.007美元)。亚马逊自己的Map-Reduce包不会在它上面运行。如果您的进程是cpu绑定,如果作为微实例绑定的内存比小标准图像更快但没有存储空间和更少内存,则此操作非常有用。


所以,一般来说,如果我使用亚马逊服务,我是否会获得一个shell帐户,以便我可以在他们的云系统上编译和调试我的程序,或者这究竟是如何工作的?我假设它们提供了开发软件以利用其分布式系统的规范?
Matt Munson

取决于您是否使用完整实例或其托管的MapReduce系统。如果你使用他们的地图减少 你得到一个在本地运行的命令行应用程序来调试 如果您要使用“其他处理引擎”路径,您将获得SSH所在的地址和私钥,并完全控制该框。就像我说的那样,完全控制方式更便宜但需要更多工作才能完成设置。
Scott Chamberlain

他们有个 免费等级 如果你保持低于使用阈值,他们正常的EC2实例可以玩并尝试一下。但他们没有免费的Map-Reduce层来试用它。
Scott Chamberlain

我的程序用C ++编写。是否 aws.amazon.com/elasticmapreduce/faqs/#dev-8 是否意味着要使用MapReduce工作会有很多额外的工作?我要设置自己的引擎需要做多少工作?在为云计算服务下运行的线程编程修改最低限度复杂的C ++程序的最小工作量方面,这将是最好的方法吗?我应该考虑亚马逊以外的服务吗?我会尝试免费套餐,看看我面对的是什么。
Matt Munson


0

您可能需要考虑的另一个选项是运行您的程序 BOINC 。这具有现有系统的优点,该系统已经具有分配和收集“工作”的困难部分。这也允许您让更多人来运行您的程序。如果你做足够的广告,你可以在网上找到朋友甚至随机的人来运行你的程序。这使您可以拥有一个(可能)庞大的计算机集群来运行程序,而无需大量小型计算机的启动成本和持续的电力成本。

请注意,我从未在BOINC上进行过编程,因此您必须要找到这样做的难度。对于一个起始平台,我认为节省的时间不必重新发明BOINC将平衡使用它的复杂性

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.