MPI的数据挖掘库

3
有没有任何数据挖掘库可以使用(或者可被使用于)MPI(Massage Passing Interface)?我正在寻找类似于Apache Mahout的东西,但可以轻松集成到MPI环境中。
我想要使用MPI的原因是其配置(与Hadoop相比)更加容易。 在数据挖掘场景中使用MPI是否有意义?
3个回答

4
没有理由认为MPI(它是一个概念,而不是软件本身!)比Hadoop/Mahout更容易安装。事实上,后两者目前处于混乱状态,特别是由于其Java库的混乱。Apache Bigtop试图让它们更容易安装,一旦你掌握了一些基础知识,就很好操作。

然而:

  • 如果您的数据很小(即可以在单个节点上处理),请不要安装集群解决方案,因为您需要支付额外开销。 Hadoop在单个主机上没有太多意义。使用Weka,ELKI,RapidMiner,KNIME或其他工具。
  • 如果您的数据很大,则需要将数据传输最小化。这就是Hadoop/Mahout的优势所在,它们可以最小化数据传输。对于数据密集型操作,典型的消息传递API无法进行相同的扩展。

还有一些类似于MPI的东西,例如Apache Hama。它基于消息,但是通过屏障同步进行批量处理。在发送之前,可能也会进行一些消息聚合以减少流量。


也许有一些误解 - MPI是一个标准,有像OpenMPI这样的实现。我想到了类似这样的东西:http://www.ism.ac.jp/IWSML2012/r1.pdf。但是我还没有找到这样的库:( - mateuszk87

2
我强烈推荐使用GraphLab。目前,GraphLab是一个分布式图并行API,包括以下工具包:
  • 主题建模
  • 协同过滤
  • 聚类
  • 图形模型

http://docs.graphlab.org/toolkits.html

GraphLab是一个基于图形的高性能分布式计算框架,用C++编写。虽然GraphLab最初是为机器学习任务开发的,但在广泛的其他数据挖掘任务中取得了巨大成功;在性能方面超越了其他抽象数倍。GraphLab具有以下特点:统一的多核和分布式API:编写一次,在共享内存和分布式内存系统中都可以高效运行;针对性能进行调整:优化的C++执行引擎利用了广泛的多线程和异步IO;可扩展:GraphLab使用先进的算法智能地放置数据和计算;HDFS集成:直接从HDFS访问您的数据;强大的机器学习工具包:轻松将BigData转化为可操作的知识。

0

这个想法没有意义,我认为你有一些误解,MPI更适用于紧密耦合的系统,我99%确定不会将消息发送到外部位置,但是您可以使用MPI更快地处理或分析数据(取决于您的硬件)。我的建议是最好使用其中一个AMQP协议的开源实现,我会说zeromq是您的最佳选择,然后在R或Python中处理所有获取的数据,如果您的数据集非常大,则可以使用MPI。另一个选择是,在连接并运行MPI的不同计算机上调用串行库,只要它们都单独连接到互联网即可。使用MPI调用R和Python非常容易。


为什么这没有意义?http://www.ism.ac.jp/IWSML2012/r1.pdf 提供了一个基于MPI的集群解决方案... - mateuszk87

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接