Algorithm 在MapReduce范例中可以重铸哪些类型/类别的算法?

Algorithm 在MapReduce范例中可以重铸哪些类型/类别的算法?,algorithm,parallel-processing,hadoop,mapreduce,Algorithm,Parallel Processing,Hadoop,Mapreduce,一些“快速问题”: 在MapReduce范例中可以重铸哪些类型/类别的算法?(例如,k-means具有MR实现) 有什么不能用这种方式表达的吗 什么样的算法特征使它们在MR范式中不那么吸引人/复杂 提前感谢您的帮助 Max.Map-Reduce范式最适合于“令人尴尬的并行”问题,即任何两个任务之间都没有依赖关系。请查看维基百科上的文章 此外,在操作是交换或关联的情况下,MapReduce程序可以轻松优化以获得更好的性能。我正在为来自MPI世界的一系列大数据算法解决同样的问题。这是我的照片 M

一些“快速问题”:

  • 在MapReduce范例中可以重铸哪些类型/类别的算法?(例如,k-means具有MR实现)

  • 有什么不能用这种方式表达的吗

  • 什么样的算法特征使它们在MR范式中不那么吸引人/复杂

提前感谢您的帮助


Max.

Map-Reduce范式最适合于“令人尴尬的并行”问题,即任何两个任务之间都没有依赖关系。请查看维基百科上的文章


此外,在操作是交换或关联的情况下,MapReduce程序可以轻松优化以获得更好的性能。

我正在为来自MPI世界的一系列大数据算法解决同样的问题。这是我的照片

MR配方的基本管道似乎是扩张/收缩。将映射应用于一个较大的集合,可能会创建一个更大的集合,然后使用reduce对该集合进行排序/组织,以便将其聚合为一个合并的数据集,最好更小。您需要的映射和减少的数量是MR算法的聪明之处

作为一种通用计算方法,您可以使用MR解决任何计算问题,但从实际角度来看,MR的资源利用率偏向于具有高并发I/O要求的计算问题。像单词计数这样令人尴尬的并行算法当然适合这项法案,但它比这更广泛,例如,你的k-means算法是一个约束最小化问题,没有人会将其归类为令人尴尬的并行,但仍然有一个有效的MR公式

我当前的正式框架从五个方面描述了分布式计算机系统的特征:

  • 处理器性能
  • 内存容量(我们可以忽略内存性能,因为它往往是由处理器设计者设计的,以支持处理器的性能)
  • 磁盘存储容量
  • 网络带宽性能
  • 网络消息传递延迟
  • 磁盘性能是我仍在为干净地整合而努力的事情,因为旋转存储技术与SSD存储技术具有巨大的性能影响,但前提是SSD通过PCIe集成。如果通过SAS或SATA集成,则达到了接口限制,并且旋转也很容易使该接口饱和。在这种情况下,只有SSD卓越的延迟有助于提高性能,但这只会使具有较小数据记录的较小数据集受益。所以现在,让我们假设我们有一个真正的大数据问题,需要轮换存储来经济高效地包含数据

    MapReduce在扩展/收缩流程中使用上述分布式资源列表:它使用处理器+内存+磁盘来执行映射功能,然后在很大程度上依赖于网络性能来实现reduce功能。由于添加服务器将扩展处理器+内存+磁盘资源,不幸的是,网络性能仅在容量上略有增加,但在延迟性能上有所降低。由于网络延迟是分布式系统中很难最小化的性能特征,因此MR算法对于以带宽为中心的运营商最为有效:即,具有数十亿个独立小数据包的算法。Nishant highlights的交换属性和关联属性是一个完美的总结,它可以识别算法类,因为这些数据包之间的排序要求大大简化,因此简单的排队运算符就足够了

    我正在寻找关于PDE解算器和优化算法(如整数规划)是否存在有效的MR算法的见解。从做FutureGrid的人那里找到了一张很棒的图片:

    刚刚找到杰夫·福克斯(Geoff Fox)的一篇优秀文章:他创造了一个名为“令人愉快的并行”的类:各种令人愉快的并行应用程序,分析大致独立的数据或生成独立的模拟。