2022-04-11 更新
仔细研究了Pathways, 写了两篇博客:
OneFlow:解读谷歌Pathways架构(一):Single-controller与Multi-controller
第二篇还在公众号上:解读 谷歌 Pathways (二): 向前一步是 OneFlow
欢迎批评指正。
========
先非常简要的回答一下。
Google 的 TensorFlow的分布式是所谓的single-client,有一个master节点做control plane生成执行计划,分发到很多worker节点上执行。
随后随着JAX的提出,Google 开始倡导SPMD (single program multiple data) ,也就是multi-client,没有所谓的master节点,各个worker 的script是对称的,各个worker 各干各的,但是有协同。multi-client在数据并行和模型并行下非常自然,各个worker就是完全对称的,在有流水并行的情况下,各个worker 执行不同的stage,不对称,SPMD并不是很协调,但multi-client还有另外一些比较微妙的优势。
Pathways 里面强调了single-controller,相当于又回到了single client。在single-client下写分布式程序脑力负担还是低一些,特别是解决了auto placement和auto parallelism之后,分布式代码就应该和单卡代码是一样的,只有single client 才会给人那种像写单机代码一样的感觉。Hadoop 和 Spark 就是典型的single client。
这里说一下OneFlow,在2020年开源的时候是single client模式,经过过去1年的重构,改成了multi client模式,也就是现在的模式。
我们也正好讨论到,尽管现在底座是 multi-client,提供一种single client的使用体验也是有好处的,譬如OneFlow支持一种叫eager global的执行模式,相当于define by run模式去一行一行写代码,这些代码会自动在分布式集群上运行,也就是调试模式写分布式代码。实现这个体验的比较简单的办法是用Ray,因为multi-client的python 脚本是对称的,在每个卡上都一样,只需要把python脚本当成Ray的remote function 发出去就可以了。
这篇论文的其它部分还没有仔细看。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有