过去几年中,网上有几篇关于在家里建立计算机集群的文章(例如,在这里)。

Pi吸引了我,因为我是构建/测试这种计算机的好平台物美价廉这样的“通用”指南应该很容易转移到Pi上,还是在尝试此类项目时我应该特别注意什么?

评论

相关论坛主题:raspberrypi.org/phpBB3/viewtopic.php?p=18356#p18356

我添加了标签“ bramble”,因为这就是这些名称。除了“把一堆扎成一团,然后运行hadoop之类的东西”之外,无法给出正确的答案-的确,我很喜欢这个问题,自己去寻找答案!
其他Pi用户也不知道魔术字“ bramble”;在基金会的论坛中进行搜索可能有所帮助,但响应速度通常很慢,因此我不会拒绝您的投票。

南安普敦大学已经制定了制造64 pi集群(或“超级计算机”)的步骤:southampton.ac.uk/~sjc/raspberry pi /…

#1 楼

我建议查看Dispy-分布式计算python模块。

要在PC上的多个Raspberry Pi(节点)上运行程序(服务器-假定IP为192.168.0.100):


在每个RasPi
将每个RasPi连接到您的网络。查找IP(如果是动态的),或者设置静态IP。
(假设您有三个节点,它们的IP是192.168.0.50-52
设置Python(如果尚未安装),请安装dispy,在每个RasPi上运行dispynode.py -i 192.168.0.100。这将告诉dispynode从服务器接收作业信息。
在PC(服务器)上,安装dispy,然后运行以下python代码:

#!/usr/bin/env python
import dispy
cluster = dispy.JobCluster('/some/program', nodes=['192.168.0.50', '192.168.0.51', '192.168.0.52'])


您还可以使用python函数替换/some/program-例如compute

您还可以通过添加dispy
来包括诸如python对象,模块和文件之类的依赖项(depends=[ClassA, moduleB, 'file1']将转移到每个节点)。

评论


我希望知道是否有人这样做-请发表评论,让我知道它是否有效!

– Alex L
2012年6月15日9:48

就我而言(openelec + python 2.7)我在的ImportError中收到此错误“文件“ ./Lib/multiprocessing/__init__.py”,行84:/usr/lib/python2.7/lib-dynload/ _multiprocessing.so:未定义的符号:SemLockType”。

–圭多
13年3月13日在21:40

但是dispy3-3.6与wheezy + python3一起运行! 2013-03-13 23:01:30,664-dispynode-在192.168.1.34:51348服务1 cpus。当您启动任务(即/ bin / ls)时,节点会收到任务,将可执行文件移至/ tmp,但出了点问题“执行['/ tmp / dispy / b7e04cb4a1e144e1 / ls']失败,并出现( '>,OSError(8,'执行格式错误'),<在0x16f2580处的追溯对象>)“

–圭多
13年13月13日在23:45

#2 楼

您应该知道已经完成的工作-甚至还有一个名称为RasPi boxen簇的名称。嵌入式Linux Wiki中将Bramble定义为“ Raspberry Pi设备的Beowulf群集”。 Raspberry Pi Homebrew有许多有关Brambles的帖子,另请参阅基金会自己的论坛。

评论


我认为告诉某人Google答案对这个网站没有好处。知道名称但考虑添加一些内容和参考链接到您的答案很有用。

–乔
2012年6月12日23:47



添加了内容和链接,@ Joe。如果反对者现在重新评估他们的意见,那将是很好的……

– mlp
2012年6月14日下午0:59

如果我真的否决了你,我会...

–乔
2012年6月14日3:00在

为了避免暗示您,乔,我非常谨慎地说了这句话。也许他们没有意识到可以通过重新单击同一按钮来撤消此处的投票,而不是通过单击相反的按钮来撤消投票。

– mlp
2012年6月15日下午0:56

#3 楼

南安普敦大学的一些人整理了一个小组,并在http://www.southampton.ac.uk/~sjc/raspberrypi/上详细介绍了他们的工作。

评论


妓女:P

– Alex L
2012年10月18日在8:54

实际上,使用MPI从该项目中可以学到很多东西。我正在根据这些家伙的工作来指导我的实验。我建议将此答案标记为该问题的正确答案。

– Benqus
2012-12-14 17:16

#4 楼

这是完全可能的,但是最大的问题是可实现性。我不仅认为这是可行的想法,而且对便携式并行计算的想法很有用。就细节而言,像FORTRAN和C ++这样的编码语言将是最好的。

查看beowulf.org了解有关集群计算的更多信息

#5 楼

这是对Guido Garcia上面关于“ dispy”的帖子的回复-我不知道如何回复他的帖子。对于并行执行,则将客户端计算机上的该程序传输到每个节点(到“ / tmp”)。这样就可以在没有NFS或某些共享目录的情况下传输客户端计算机上用户开发的程序。仅当节点和客户端体系结构兼容时,此方法才适用于二进制程序。在您的情况下,我猜想客户端架构与远程节点的架构不同,并且一个节点无法执行从客户端传输的二进制“ / bin / ls”。如果要在每个节点上执行/ bin / ls,可能更容易编写Python函数或程序来打印目录(例如,使用os.listdir)并分发该目录而不是二进制可执行文件。

评论


您需要50声望才能对其他人的答案/问题发表评论。不过欢迎您!

–冲动
13年3月21日在3:02

#6 楼

如果您需要功能齐全的控制面板,还可以访问http://pi.interworx.com。他们在此页面上有有关如何复制的说明,但是您必须耐心等待,因为该子域本身正在从Rasberry Pi群集运行。这是一张照片,以防它掉落:

http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1