我想知道是否有可用的perl模块来支持类似于apache hadoop的分布式并行计算。
例如,当提交到客户机节点时,要在多台机器上并行执行的perl脚本。
发布于 2013-02-27 12:59:36
我是Perl多核引擎的作者。
在接下来的几个周末,我将带着MCE和Gearman::XS一起兜风。MCE擅长最大化给定节点上的可用内核。Gearman擅长作业分发,并包含许多功能,如负载均衡。将两者结合在一起是我在许多节点上水平扩展MCE的想法。:)直到现在我才把这个消息告诉任何人。
为什么这两个模块很适合(我的浅见):
一个人的想象力在这里是有限的--这两个模块一起工作有太多的可能性。在编写MCE时,我首先关注的是节点端。工作分布显然是下一个,我做了一个搜索,偶然发现了Gearman::XS。这两个模块可以愉快地分块在一起:)作业分发端(较大的块),一次在节点上(较小的块)。所有的网络工作都是由Gearman负责的。
基本上,在Gearman::XS已经相当不错的情况下,我不需要编写作业分布方面的内容。这就是我的计划。我很快就会写关于Gearman::XS + MCE的文章。
顺便说一句,人们可以用GRID-Machine + MCE做类似的事情。MCE的美妙之处在于最大化任何给定节点上的所有可用核心。
MCE的另一个神奇之处在于,人们可能不希望200个节点* 16个工作者都在读/写NFS服务器。这将极大地影响NFS服务器。顺便说一句: RHEL 6.4将包括pNFS (并行NFS)。使用MCE,工作人员可以调用"do“方法来序列化NFS的写入/读取。因此,不再是200 * 16 = 3200攻击NFS,而是在任何给定时间针对NFS服务器的最大请求数仅为200 (每个物理节点1个)。
在编写MCE时,可以将宽限应用于许多场景。我需要向MCE的主页MCE at code.google.com添加更多的wiki。此外,MCE早餐会吃很大的日志文件:)查看examples目录下的egrep.pl和wc.pl。它甚至用顺序IO (许多工作者中强大的slurp IO )击败了wide finder项目。
查看MCE发行版附带的images。哦,别忘了去看看主Gearman站点。
这之后还剩下什么?嗯,那篇网络文章。脑海中浮现的一个想法是使用Mojo。有很多选择。这只是其中之一:
Gearman::XS + MCE + Mojolicious
同样,如果想要通过SSH通信,可以使用GRID-Machine而不是Gearman::XS。
无论如何,这是我的计划,使用一个已经可用的工作分配模块。对于MCE,我的重点是最大化单个节点上的性能--包括分块、序列化、银行排队模型、用户任务(允许多个角色)、工作进程之间的编号排序和顺序slurp IO。
--马里奥
发布于 2013-02-15 22:26:04
您可以研究像ZeroMQ这样的消息队列这样简单的东西。我相信CPAN search可以提供一些其他的建议。
最近有一些关于多核引擎MCE模块的讨论,你可能想要调查一下,我不确定它是否允许你在主机上并行化,但它似乎不会是一个很大的步骤,因为它声明的目的。
发布于 2013-06-11 01:10:10
CPAN上的GRID模块是为处理分布式计算而设计的。
https://metacpan.org/pod/distribution/GRID-Machine/lib/GRID/Machine/perlparintro.pod
https://stackoverflow.com/questions/14893851
复制相似问题