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