【问题标题】:Map/Reduce: any theoretical foundation beyond "howto"?Map/Reduce:“howto”之外的任何理论基础?
【发布时间】:2012-01-22 19:51:30
【问题描述】:

有一段时间我在想你只需要一个映射到一个幺半群,然后 reduce 会根据幺半群的乘法进行归约。

首先,这不是幺半群的工作方式,其次,这不是 map/reduce 在实践中的工作方式。

即,以无处不在的“计数”为例。如果没有什么可计算的,任何 map/reduce 引擎都将返回一个空数据集,而不是一个中性元素。无赖。

此外,在幺半群中,为两个元素定义了一个操作。我们可以很容易地将它扩展到有限序列,或者由于关联性,扩展到有限有序集。但是没有办法将它扩展到任意“集合”,除非我们实际上有一个σ-algebra

那么,理论是什么?我试图弄清楚,但我做不到;我试图去谷歌它但什么也没找到。

【问题讨论】:

  • 也许这很有趣MapReduce as a monad
  • 我对您的 sigma 代数评论感到困惑。由于我见过的每个 map reduce 引擎都在可数集合上运行(!),如果您在集合关联性上选择一个排序就足以定义结果。当您有(至少)不可数的集合要处理时,Sigma 代数用于测度论。
  • @RupertSwarbrick 出现 σ-algebra 的原因是,如果您没有规范排序和二元运算,那么您有一个定义明确的序列。但是,如果您没有这样的排序(并且因为我们正在讨论显式算法,我们不会调用选择公理),您就不会得到一个明确定义的答案表达式。代数结构允许定义一个,将评估从属于诱导拓扑。

标签: math mapreduce


【解决方案1】:

我认为思考 map-reduce 的正确方法不是将其作为一种计算范式,而是作为一种类似于while 循环的控制流构造。您可以将while 视为具有两个参数、一个谓词函数和一个任意程序的程序构造函数。类似地,map-reduce 构造有两个名为mapreduce 的参数,每个参数都是函数。与while 类似,要问的有用问题是关于证明构建的程序相对于给定的前置条件和后置条件的正确性。和往常一样,这些问题涉及 (a) 终止和运行时性能以及 (b) 不变量的维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多