Celery: 地图和星​​图应该重命名吗?

创建于 2014-02-24  ·  3评论  ·  资料来源: celery/celery

我真的不认为这两个原语真的符合它们在“分布式任务队列”的上下文中应该暗示的含义。 我理解为什么有人可能需要 map 和 starmap 函数,因为他们创建了一个任务,但我并没有真正获得他们的优势,因为用户编写函数来简单地支持输入列表是微不足道的. 对我来说,这里的“地图”一词意味着类似于 map-reduce 算法的东西,这绝对不是。 和弦实际上是一种 map-reduce 形式,它实际上只是让命名令人难以置信。

我认为和弦的命名应该坚持下去,因为它已经足够了,但是拥有地图和星图暗示有一个地图减少功能IMO。

http://docs.python.org/2/library/multiprocessing.html#using -a-pool-of-workers

最有用的评论

group是分布式映射函数。

术语 map 早在 Google 写 MapReduce 论文之前就已经使用了,我认为当在 haskell 或 clojure 中使用时,没有人会被这个术语混淆。 该功能用“地图”一词完美表达,我认为没有任何自然的替代品。

画布原语也都是名词(签名、组、弦、链),但 map 用作动词(task.map),而不是游客有时看到的东西。

MapReduce 框架通常也不会有断开连接的 map 和 reduce 阶段,而是
你有一个 mapreduce 操作,它需要一个 Mapper 和一个 Reducer,处理后的数据被流式传输到 reducer。 事实上,仅仅拥有 map() 和 reduce() 被认为对于 MapReduce 来说是不够的。

所以chord并不是真正的 map-reduce 形式,它是屏障的分布式版本,而名称
直接取自 Cω 中的这种障碍。

group不是取自任何地方,但是操作是一样的
正如并发文献中通常所说的“并行映射”,只是以分布式形式。
因此, map通常被认为是顺序的,而不是并行的

所有3条评论

group是分布式映射函数。

术语 map 早在 Google 写 MapReduce 论文之前就已经使用了,我认为当在 haskell 或 clojure 中使用时,没有人会被这个术语混淆。 该功能用“地图”一词完美表达,我认为没有任何自然的替代品。

画布原语也都是名词(签名、组、弦、链),但 map 用作动词(task.map),而不是游客有时看到的东西。

MapReduce 框架通常也不会有断开连接的 map 和 reduce 阶段,而是
你有一个 mapreduce 操作,它需要一个 Mapper 和一个 Reducer,处理后的数据被流式传输到 reducer。 事实上,仅仅拥有 map() 和 reduce() 被认为对于 MapReduce 来说是不够的。

所以chord并不是真正的 map-reduce 形式,它是屏障的分布式版本,而名称
直接取自 Cω 中的这种障碍。

group不是取自任何地方,但是操作是一样的
正如并发文献中通常所说的“并行映射”,只是以分布式形式。
因此, map通常被认为是顺序的,而不是并行的

它们很有用,因为它们让您只需使用task.map(list)而不是group(task.s(i) for i in list)就可以降低操作的粒度

除了task.map(list)不允许任务同时运行。 所有的任务一个接一个地在同一个worker上运行。 如果不是这种情况,我可以打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级