首页 > 其他分享 >【知识点】分布式系统相关名词/概念/知识点

【知识点】分布式系统相关名词/概念/知识点

时间:2022-12-28 17:08:09浏览次数:70  
标签:知识点 reduce 名词 Reduce Gather 并行 分布式系统 数据 节点


目录

​​通信原语[1]​​

​​BroadCast​​

​​Scatter​​

​​Gather​​

​​All-Gather​​

​​Reduce​​

​​Reduce-Scatter​​

​​All-Reduce​​

​​All-to-All​​

​​Ring-Base Collectives[2]​​

​​参考文献与帖子​​


通信原语[1]

BroadCast

        1对多,广播方式。主节点0将数据发送到其他节点,且数据内容相同

【知识点】分布式系统相关名词/概念/知识点_应用场景

应用场景:

  1. 数据并行的参数初始化,确保每张卡上的初始参数是一致的;
  2. allReduce里的 broadcast + reduce组合里的broadcast操作;
  3. 分布式训练parameter server 参数服务器结构里的 master节点 broadcast 数据到worker节点,再从worker节点reduce数据回master节点里的broadcast操作;

Scatter

        1对多,广播方式。主节点0将数据发送到其他节点,且数据内容不相同

【知识点】分布式系统相关名词/概念/知识点_分布式_02

应用场景有:

  1. ReduceScatter组合里的 Scatter操作;
  2. 模型并行里初始化时将模型scatter到不同的XPU上;

Gather

        多对1。把多个节点的数据汇聚到一个节点上。

【知识点】分布式系统相关名词/概念/知识点_数据_03

应用场景有:

  1. ReduceScatter组合里的 Scatter操作;

All-Gather

        多对多。收集所有的数据所有的节点上。把多个节点的数据收集到一个主节点上(Gather),再把这个收集到的数据分发到其他节点上(broadcast)。

【知识点】分布式系统相关名词/概念/知识点_开发语言_04

应用场景有:

  1.  All-Gather可应用于模型并行;
  2. 模型并行里前向计算里的参数全同步,需要用all-gather把模型并行里将切分到不同的XPU上的参数全同步到一张XPU上才能进行前向计算。

Reduce

        多对1。把多个节点的数据规约运算到一个主节点上。

        常用的规约操作符有:求累加和SUM、求累乘积PROD、求最大值MAX、求最小值MIN、逻辑与 LAND、按位与BAND、逻辑或LOR、按位或BOR、逻辑异或LXOR、按位异或BOXR、求最大值和最小大的位置MAXLOC、求最小值和最小值的位置MINLOC等,这些规约运算也需要加速卡支持对应的算子才能生效。

【知识点】分布式系统相关名词/概念/知识点_分布式_05

应用场景有:

  1. AllReduce里的 broadcast + reduce组合里的reduce操作;
  2. ReduceScatter组合里的 reduce操作;
  3. 分布式训练parameter server 参数服务器结构里的 master节点 broadcast 数据到worker节点,再从worker节点reduce数据回master节点里的reduce操作;

Reduce-Scatter

        多对多。在集群内的所有节点上都按维度执行相同的Reduce规约运算,再将结果发散到集群内所有的节点上。

【知识点】分布式系统相关名词/概念/知识点_数据_06

应用场景有:

  1. ReduceScatter即可应用于数据并行也可应用于模型并行;
  2. 数据并行allReduce里的 ReduceScatter+ Allgather组合里的ReduceScatter操作;
  3. 模型并行里在前向allgather后的反向计算里的ReduceScatter;

All-Reduce

        多对多。在所有节点上都执行相同的Reduce操作,将所有节点的数据规约运算得到的结果发送到所有的节点上。

【知识点】分布式系统相关名词/概念/知识点_分布式_07

应用场景有:

  1. AllReduce应用于数据并行;
  2. 数据并行各种通信拓扑结构比如Ring allReduce、Tree allReduce里的 allReduce操作;

All-to-All

        多对多。对All-Gather的扩展,但不同的节点向某一节点收集到的数据是不同的。

【知识点】分布式系统相关名词/概念/知识点_应用场景_08

应用场景有:

  1. 应用于模型并行;
  2. 模型并行里的矩阵转置;
  3. 数据并行到模型并行的矩阵转置;

Ring-Base Collectives[2]

        将所有的通信节点通过首尾连接形成一个单向环,数据在环上依次传输。

【知识点】分布式系统相关名词/概念/知识点_应用场景_09

下面把要传输的数据分成S份,每次只传N/S的数据量

【知识点】分布式系统相关名词/概念/知识点_分布式_10

在以GPU为通信节点的场景下,如何构建通信环:

  • 单机4卡通过同一个PCIe switch挂载在一棵CPU:

【知识点】分布式系统相关名词/概念/知识点_开发语言_11

  • 单机8卡通过两个CPU下不同的PCIe switch挂载:

【知识点】分布式系统相关名词/概念/知识点_分布式_12

参考文献与帖子

[1] ​​常平的笔记 - 认识世界是为了改造世界​

[2] ​​如何理解Nvidia英伟达的Multi-GPU多卡通信框架NCCL? - 知乎​

标签:知识点,reduce,名词,Reduce,Gather,并行,分布式系统,数据,节点
From: https://blog.51cto.com/xfxuezhang/5975711

相关文章

  • 【博学谷学习记录】超强总结,用心分享。mybatis框架的一些重要知识点。
    一、MyBatis框架1.1谈一谈对mybatis框架的理解。mybatis是一款优秀的持久层框架,一个半ORM(对象关系映射)框架,它支持定制化SQL、存储过程以及高级映射......
  • 项目知识点
    1.input中的placeholder属性placeholder属性提供可描述输入字段预期值的提示信息(hint)。该提示会在输入字段为空时显示,并会在字段获得焦点时消失。2.两个按钮间想要有间......
  • Java千问13:Java循环语句的几个冷门知识点你都知道吗?
    我们在进行Java开发的时候,经常会用到循环结构,但是有几个关于循环的“冷门”知识点,不知道你是不是都已经掌握了呢?我们一起来看看一、大括号可以不写吗?我们都知道,如果每次循......
  • 四、数据结构第四节——二叉树(知识点)
    四、数据结构第四节——二叉树今天开启美妙的二叉树的学习~~~“树”是我们第一次见到的”非线性”的数据结构。二叉树:是树上每个节点都只有两个子节点的简单的树。知......
  • redis知识点笔记
    Redis相关复习知识点 相关知识点简介1为什么要使用redis(说redis优点)?2使用redis有什么缺点?3单线程的redis为什么这么快?4redis的数据类型,以及每种数据类型的使......
  • Python知识点收集
    带下划线的变量和函数的意义变量(函数类似)-前带单下划线'_'的变量,是一个'私有变量'(语义化),只用于类内部使用,实例还是可以访问到这个变量-前带双下划线'__'的......
  • C语言备忘知识点
    1.输入输出格式scanf当中若是对双精度的变量赋值是必须是%后跟lf,而printf当中可以用%f也可以用%lf没有限制。printf("%-20.3d",a);//左对齐,宽度为20,保......
  • 分布式系统中的常用技术
    1、布隆过滤器Bloom过滤器是一种节省空间的概率数据结构,用于测试元素是否为某集合的成员。它用于我们只需要检查元素是否属于对象的场景。 在BigTable(和Cassandra)中,任......
  • 新手必看的软件测试名词解释
    测试案例----测试用例的别名黑盒测试----指测试人员通过各种输入和观察软件的各种输出结果来发现软件的缺陷,而不关心程序具体如何实现的一种测试方法。静态......
  • 多线程必知必会的知识点
    说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);如果队列是空的,消费者会一直等待,当生产者添加元素时候,消费者是如何知道当前队列有元素的呢?如果让你来......