一些“快速问题”:
在MapReduce范例中可以重铸哪些类型/类别的算法? (例如,k-means有MR实施)
是否有任何不能用这种方式表达的内容?
什么算法特征使得它们在MR范例中重铸不那么有吸引力/复杂
提前感谢您的帮助。
最大
答案 0 :(得分:2)
Map Reduce范例最适合于“令人尴尬的并行”的问题,即任何两个任务之间没有依赖关系。请查看维基百科上的Embarrassingly Parallel文章。
此外,如果操作是可交换的或关联的,MapReduce程序可以轻松优化以获得更好的性能。
答案 1 :(得分:2)
我正在研究这些来自MPI世界的大数据算法集合的相同问题。这是我的看法。
MR制剂的基本管道似乎是扩张/收缩。映射应用于大型集合,可能创建更大的集合,然后使用reduce来对该集合进行排序/组织,以便可以将其聚合到合并数据集中,最好小得多。地图的数量和减少你需要的是MR算法的聪明。
作为一种通用计算方法,您可以使用MR解决任何计算问题,但从实际角度来看,MR的资源利用率偏向于支持具有高并发I / O要求的计算问题。令人尴尬的并行算法(如字数统计)肯定符合这个要求,但它比这更广泛,例如,你的k-means算法是一个约束最小化问题,没有人会将其归类为令人尴尬的平行,但仍然有一个有效的MR公式。 / p>
我目前的正式框架根据五个属性来表征分布式计算机系统:
磁盘性能是我仍在努力干净整合,因为旋转与SSD存储技术具有巨大的性能影响,但前提是SSD通过PCIe集成。如果通过SAS或SATA集成,那么您可以达到接口限制,旋转也可以轻松地使该接口饱和。在这种情况下,只有SSD的优秀延迟才能有助于提高性能,但这只会使数据记录较小的数据集受益。所以目前,让我们假设我们有一个真正的大数据问题,需要旋转存储来有效地控制数据。
MapReduce在扩展/收缩流程中使用上面的分布式资源列表:它使用处理器+内存+磁盘来执行映射功能,然后在降低功能的情况下严重依赖网络性能。由于添加服务器将扩展处理器+内存+磁盘资源,遗憾的是,网络性能仅适度增加,但延迟性能下降。由于网络延迟是在分布式系统中最小化的非常困难的性能特性,因此MR算法对于以带宽为中心的运营商最有效:即,具有数十亿个独立的小数据包的算法。 Nishant强调的交换和关联属性是识别这类算法的完美总结,因为这些数据包中的排序要求大大简化,因此简单的排队运算符就足够了。
我正在寻找关于是否存在用于PDE求解器和优化算法的有效MR算法的见解,例如整数编程。从正在做FutureGrid的人那里找到一个很棒的图形: