2023-分布式学习记录3

通信

一、通信机制

分布式机器学习和单机的最大区别就是需要协同多个机器来共同完成模型的训练任务。分布式机器学习一般的分布式计算相比,主要有两个重要的不同点,1)机器学习算法是迭代式的,所以通信频率往往会很高;2)机器学习的优化算法对数据的容错性很高,即少量的数据错误和丢失并不会影响最后的结果,反而可能因为引入了随机性使得效果更好;

分布式机器学习系统有一个很重要的指标,即计算通信时间比,这个指标会决定算法的加速比上限,同时,很多算法和系统的折中根据也可以由这个指标推导出来。

通常分布式机器学习系统的通信指的是:通信内容,拓扑结构,步调,频率。

二、通信内容

总体来讲,机器学习算法的通信内容可以分为参数(或者参数的更新)和计算的中间结果两类。

基于数据并行的系统通常是用参数(或更新)作为通信的介质;而模型并行的系统通常是用模型的中间结果作为通信介质。

通信拓扑结构

  • 基于allreduce的通信拓扑

主要基于MPI接口实现,程序员主要使用其中的ALLReduce接口来同步任何想要同步的信息;该接口支持所有reduce的操作(求和、平均、最大值等)。Allreduce对应于一个标准的接口,其内部有不同的实现方式,包括星形、树形、蝴蝶形拓扑,各种拓扑在传输次数和传输数据量方面有很大的不同;其中结合reducescatter和allgather的ringreduce算法在传输量和传输次数上都有一定的

基于allreduce的模式只能支持同步通信,并且从接口来看也支持数据并行的方式。

  • 基于参数服务器的通信拓扑

基于二部图拓扑的分布式架构,有client和parameter sever两个角色划分,其中client和server之间通信,而client之前不能通信。

其优势在于这种拓扑的灵活性更好,支持异步更新和模型并行。

  • 基于数据流的通信拓扑

其计算OP组成一个DAG图,典型的系统是tensorflow。

通信步调

大的划分,主要可以分成同步通信、异步通信和同步、异步结合的通信。

  • 同步通信

同步通信会引入一个全局的屏障(Barrier Synchronization),也就是所以的worker在这个地方都会被强迫停止下来,直到所有的工作节点都完成屏障之前的任务。

同步通信的优点:其收敛性相当于单机版的batch-size扩大k倍,方便调试和分析;缺点:当各个机器的步调不一致的时候,会遇到掉队者的麻烦,会被某一台机器拖死(可以通过带有备忘机制的同步通信或者异步通信解决)。

  • 异步通信

分为多机的异步通信和多线程的异步通信(如hogwild)。

异步通信的优点是:计算资源的利用率更高,不会有单个节点拖死整个任务的问题;缺点:会有”延迟“的问题,导致最后的收敛性无法保证。

  • 同步异步结合

延时同步并行(SSP),这个机制的核心思想是:组成一个集群的机器是同质的且独占的,所以各个worker的运行速率差不多;当各个worker的迭代次数不超过某个阈值的时候,各个worker独立运行,只有彼此间迭代次数相差比较大的时候,才会触发同步机制,等下慢节点。

通信的频率

现在cpu尤其是gpu的计算速度越来越快,出于通信计算时间比的要求,对通信的要求越来越高。

 

 

posted @ 2023-02-27 01:35  kuaiquxie  阅读(4)  评论(0编辑  收藏  举报