【问题标题】:Distributed Matrix Multiplication in JavaJava中的分布式矩阵乘法
【发布时间】:2012-09-25 19:20:04
【问题描述】:
我目前在 Matlab 中有几个算法,我希望用 Java 编写代码。我将使用以下方法之一(Colt、Apache Commons Math、jblas)来执行此操作。然而,由于我真的希望提高这些算法的速度,我正在寻找建议,并希望现有的实现,以并行化这些算法以提高性能。
据我所知,Hadoop 不是分布矩阵运算的好选择。我也看过 Mahout,但我不清楚这是否有助于实现这一目标。
非常感谢您的所有提示和建议。
【问题讨论】:
标签:
matlab
hadoop
distributed-computing
mahout
matrix-multiplication
【解决方案1】:
您从哪里得到关于 Hadoop“不是分布矩阵运算的好选择”的信息?这当然是一个不错的选择,但前提是您的数据量很大——至少 50 GB 以上。如果您可以将其放入内存中,Hadoop 不是一个好的选择,但如果您认为您想在多个 TB 的数据上使用它,那么 Hadoop 是一个很好的工具。在优化矩阵乘法时,还有很多其他的事情需要考虑,比如数据的结构(它是稀疏的吗?它是否出现在集群中?等等)。
Google 上有大量关于在 MapReduce 上实现矩阵乘法的信息 - 如果您选择这条路线,Jeffrey Ullman 的 book 可能是一个不错的起点。