【问题标题】:How scalable is MapReduce in the original functional languages?MapReduce 在原始函数式语言中的可扩展性如何?
【发布时间】:2011-08-30 13:52:41
【问题描述】:

Map-Reduce 编程模型源于多年前在 Lisp 和 Scheme 等函数式语言中出现的 map 和 reduce 函数。

我记得在大学(90 年代初)时,甚至在那时我就被告知 Map-Reduce 在可扩展性方面具有优势。

目前我们都知道 Hadoop 以及从 Google 复制它的原始版本。 我想知道的是,“旧”函数式语言中存在哪些选项可以在至少几个计算节点上执行 Map-Reduce?

或者这是那些在纸面上看起来不错但在 Google 完成之前没有人真正开始构建的功能之一?

【问题讨论】:

    标签: functional-programming hadoop scalability mapreduce parallel-processing


    【解决方案1】:

    Map/Reduce 是 data parallelism 的一个特例。

    数据并行(不仅仅是mapfold)广泛用于高性能计算语言和并行函数式语言。 Google 和其他公司已经为他们的用例构建了一个高度优化(受限)的分布式编程模型,但他们肯定完全了解其他地方这项工作的起源和状态。

    HPC 语言,例如

    纯函数式语言,具有完整的数据并行性:

    都支持完整的数据并行编程模型,适用于分布式或多核系统。特别是,Chapel、Fortress 和 X10 旨在在世界上最大的计算机集群上实现大规模可扩展性。许多其他语言支持一些并行映射和折叠的概念(例如 Erlang、Clojure、Scala、F#)。

    因此,谷歌当然以 map/reduce 的基本形式普及了数据并行性,但这并不是故事的结局。

    【讨论】:

    • 谢谢!这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2015-04-16
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多