MPI 数据挖掘库
Posted
技术标签:
【中文标题】MPI 数据挖掘库【英文标题】:Data Mining Library for MPI 【发布时间】:2012-09-24 11:30:09 【问题描述】:是否有任何数据挖掘库正在使用(或可供使用)MPI(按摩传递接口)?我正在寻找类似于 Apache Mahout 但可以轻松集成到 MPI 环境中的东西。
我想使用 MPI 的原因是配置(与 Hadoop 相比)很容易。 还是在数据挖掘场景中使用 MPI 没有意义?
【问题讨论】:
【参考方案1】:没有理由说明 MPI(这是一个概念,而不是软件本身!)一定比 Hadoop/Mahout 更容易安装。事实上,后两者目前是一团糟,特别是因为它们的 Java 库混乱。 Apache Bigtop 试图让它们更易于安装,一旦你弄清楚了一些基础知识就可以了。
但是:
如果您的数据很小(即可以在单个节点上处理),请不要安装集群解决方案,您需要支付开销。 Hadoop 在单个主机上没有多大意义。使用 Weka、ELKI、RapidMiner、KNIME 等。 如果您的数据很大,您将希望尽量减少数据传输。这就是 Hadoop/Mahout 的优势所在,可以最大限度地减少数据传输。典型的消息传递 API 无法以相同的方式扩展数据量大的操作。有一些努力,例如 Apache Hama,与 MPI 的东西恕我直言非常相似。它基于消息,但是它们通过屏障同步进行批量处理。它还可能在发送之前进行一些消息聚合以减少流量。
【讨论】:
也许存在某种误解 - MPI 是一种标准,并且有像 OpenMPI 这样的实现。我有一些想法,例如:ism.ac.jp/IWSML2012/r1.pdf。但我还找不到这样的库:(【参考方案2】:我强烈推荐graphlab。目前,graphlab 是一种分布式图形并行 API,其工具包包括
主题建模 协同过滤 聚类 图形模型http://docs.graphlab.org/toolkits.html
GraphLab 是一个基于图的高性能分布式计算框架,用 C++ 编写。虽然 GraphLab 最初是为机器学习任务而开发的,但它在广泛的其他数据挖掘任务中取得了巨大成功;比其他抽象性能好几个数量级。
GraphLab 特点:
统一的多核和分布式 API:一次写入可在共享和分布式内存系统中高效运行 性能优化:优化的 C++ 执行引擎利用广泛的多线程和异步 IO 可扩展性:GraphLab 使用复杂的新算法智能地放置数据和计算 HDFS 集成:直接从 HDFS 访问您的数据 强大的机器学习工具包:轻松将大数据转化为可操作的知识
【讨论】:
【参考方案3】:这个想法没有意义,我认为你有一些误解,MPI 更适用于紧密耦合的系统,我 99% 肯定不会将消息发送到外部位置,但是你可以处理或分析数据使用 MPI 更快(取决于您的硬件)。我的 2 美分是你最好使用AMQP 协议开源实现之一,我会说 zeromq 是你最好的选择,然后处理你在 R 或 python 中获得的所有数据,或者如果你的数据集非常大MPI。另一种选择是,您可以在连接并运行 MPI 的不同机器上调用串行库,因为它们都单独连接到 Internet。 R 真的很容易用 MPI 调用,python 也是如此。
【讨论】:
为什么没有意义? ism.ac.jp/IWSML2012/r1.pdf 有一个基于 MPI 的集群解决方案...以上是关于MPI 数据挖掘库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio 2010 在 Windows 上使用 Open MPI 构建 boost::mpi 库
MPI学习6MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
MPI 笛卡尔拓扑:MPI_Neighbor_alltoall 发送错误数据
MPI_Isend/MPI_Irecv 在啥条件下等待其关联的完成调用 (MPI_Wait/MPI_Test) 开始数据传输?