gpt4 book ai didi

multithreading - 并行化 "Reduce"中的 "MapReduce"

转载 作者:行者123 更新时间:2023-12-03 15:33:20 25 4
gpt4 key购买 nike

我了解 Map 是如何轻松并行化的——每台计算机/CPU 只能在阵列的一小部分上运行。

Reduce/foldl 是否可并行化?似乎每个计算都依赖于前一个。它是否仅适用于某些类型的函数?

最佳答案

如果您的归约基础操作是关联的*,您可以使用操作顺序和局部性。因此,在“收集”阶段,您通常会具有树状结构,因此您可以在对数时间内通过多次传递来完成此操作:

a  +  b  +  c  +  d
\ / \ /
(a+b) (c+d)
\ /
((a+b)+(c+d))

而不是 (((a+b)+c)+d)

如果您的操作是可交换的,则可以进一步优化,因为您可以按不同的顺序收集(例如,当这些操作是向量操作时,数据对齐可能很重要)

[*] 你真正想要的数学运算,当然不是像浮点数这样的有效类型的运算。

关于multithreading - 并行化 "Reduce"中的 "MapReduce",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/329423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com