图解大模型分布式并行各种通信原语

 背景

在分布式集群上执行大模型任务时候,往往使用到数据并行,流水线并行,张量并行等技术,这些技术本质上也就是对数据进行各种方案的切分,然后放到不同的节点上运算。不同节点在计算的过程中需要对数据分发或者同步等操作的通信,本文将通过图解的方式,帮助快速区分并理解不同的通信原语所代表的含义。

通信原语集合

broadcast

在并行计算领域,广播(Broadcast)用于将数据从一个进程或节点发送到所有其他进程或节点。通常由一个源进程或节点发送数据,然后所有其他进程或节点都接收相同的数据。

用途:广播通常用于在并行计算中将全局数据分发给所有参与者,以便它们可以共享相同的信息

 scatter

在并行计算领域,分散(scatter)用于将数据从一个进程或节点发送到多个进程或节点。通常由一个源进程或节点发送数据,然后所有其他进程或节点都接收部分数据。

用途:分散通常用于将全局数据分配给各个参与者,以便它们可以分别处理自己的部分数据。

gather

在并行计算领域,收集(gather)用于将来自多个进程或节点的数据收集到单个进程或节点中。结果是将来自各个进程或节点的数据聚合到一个目标进程或节点中。

用途:收集通常用于在并行计算中汇总数据,进行统计分析或在单个节点上进行处理。

all-gather

在并行计算领域,全收集(all-gather)类似于收集操作,但不同之处在于它将来自所有进程或节点的数据收集到所有其他进程或节点中,而不仅仅是一个目标进程或节点。

用途:全收集通常用于在分布式计算中共享数据,进行全局汇总或进行全局同步。

reduce

在并行计算领域,归约(reduce)用于将来自多个进程或节点的数据合并成单个值。通常由一个目标进程或节点执行归约操作,并将来自其他进程或节点的数据聚合成一个结果。

用途:归约通常用于在并行计算中汇总数据,计算全局统计量或合并各个部分的计算结果。

all-reduce

在并行计算领域,全归约(all-reduce)类似于归约操作,但不同之处在于它将来自所有进程或节点的数据合并成单个值,并将结果分发给所有其他进程或节点。

用途:全归约通常用于在分布式计算中计算全局统计量,合并全局计算结果或进行全局同步。

reduce-scatter

在并行计算领域,归约-分散(reduce-scatter)结合了归约和分散操作。它首先将来自多个进程或节点的数据归约成单个值,然后将结果分散到所有进程或节点中。

用途:归约-分散通常用于将全局计算结果分发给各个参与者,以便它们可以在本地处理部分结果。

all-all

在并行计算领域,全-全(all-all)它在所有进程或节点之间进行全局数据交换。每个进程或节点都向所有其他进程或节点发送数据,并接收来自所有其他进程或节点的数据。

用途:全-全通常用于实现全局同步、全局数据交换或分布式计算中的其他全局操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 2.1 研究背景 2.2 研究现状 03 研究区域与数据集 3.1 研究区域 3.2 研究数据 04 研究方法 4.1 趋势分析 4.2 残差趋势分析 4.3 偏相关 4.4 生态系统服务评价 4.5 约束线的定义和提取 05 研究结果 5.1 植被…

秒杀基本功能开发(不考虑高并发情况)

文章目录 1.显示秒杀状态1.controller修改GoodsController.java的toDetail方法,响应秒杀状态和秒杀剩余时间 2.前端1.goodsDetail.html 图片下面添加一行秒杀开始时间2.goodsDetail.html 添加计时器js代码 3.测试1.秒杀进行中2.修改db的秒杀开始时间为明天3.出现秒杀…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本篇构建了这样的一个实例,可以动态修改UI的主题,通过菜单栏来选择预设的自定义主题和官方主题&#…

python列表的扩展操作

列表的扩展操作 zip() 函数 我们先学习 zip() 函数,将排名与分数挂钩。 还记得期中考试的顺序排名和分数吗?我们把排名放在了列表 midterm_rank 中,把分数放在了 scores 中。不过当时 scores 并没有排序,我们要对数据进行预处理…

深入理解文件系统和日志分析

文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。 inode:存储元信息(包括文件的属性,权限,创建者,创建日期等等) block:块,连续…

小白跟做江科大32单片机之LED闪烁

原理介绍 原理介绍详见: 【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客https://blog.csdn.net/u010249597/article/details/134762513 项目准备 1.在项目文件夹中新建3-1 LED文件夹 2.keil新建项目,打开新建的3-1 LED&#xf…

ros2 launch 用法以及一些基础功能函数的示例

文章目录 launch启动一个节点的launch示例launch文件中添加节点的namespacelaunch文件中的话题名称映射launch文件中向节点内传入命令行参数launch文件中向节点内传入rosparam使用方法多节点启动命令行参数配置资源重映射ROS参数设置加载参数文件在launch文件中使用条件变量act…

【CC2530-操作外部flash】

zigbee cc2530操作flash,以cc2530读flash_id为例子; void InitIO() {CLKCONCMD & ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32M CLKCONCMD & ~0x47; //设置系统主时钟频率为32MHZ…

Python知识点20---池

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 如果看了我发的线程和进程的知识点的朋友,如果发散思维能…

面试(五)

目录 1. 知道大顶堆小顶端吗,代码怎么区分大顶端小顶端 2. 计算机中栈地址与内存地址增长方向相反吗? 3. %p和%d输出指针地址 4. 为什么定义第二个变量时候,地址反而减了 5. 12,32,64位中数据的占字节?…

物质的量质量,它们可不是一个概念

物质的量&质量,它们可不是一个概念。 物质的量&质量 乍一听物质的量,还以为是和质量有什么关系,是不是?其实物质的量和质量没什么直接的联系。 物质的量是国际单位制中7个基本物理量之一,其符号为n&#xf…

Aras Innovator-Team(群组)的使用方法

当Aras Innovator在处理权限时,在不使用Team的情况下,系统的权限配置可以满足大部分业务场景,如:常见的按照组织架构,成员和角色分配权限,按照生命周期分配权限等。 如果遇到比较复杂的权限需求&#xff0c…

AltiumDesigner/AD添加数据库连接

1.首先确保本机电脑有无对应的数据库驱动,例如我这边要添加MySQL的数据,则需要首先下载MySQL数据驱动:MySQL :: Download MySQL Connector/ODBC (Archived Versions) 2.运行“odbcad32.exe”,如下图添加对应的数据库配置&#xf…

SpringMVC:向三大域对象存数据

1. 简介 Servlet中的三个域对象 请求域:request会话域:session应用域:application 主要是通过:setAttribute getAttribute方法来完成在域中数据的传递和共享。 点击跳转Servlet详细概念 // 向域中存储数据 void setAttribute(St…

智能sql LLM

DB-GPT:彻底改变数据库与私有LLM技术的交互 智能SQL生成:后端技术与LLM的完美结合 智能SQL生成:后端技术与LLM的完美结合_llm sql-CSDN博客 GitHub - eosphoros-ai/DB-GPT: AI Native Data App Development framework with AWEL(Agentic Wor…

【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

golang字符串实用函数库go-str-utils 之字符串命名转换 大小驼峰, snake, kebab命名转换

在go语言的开发中,字符串的处理是最为频繁的, 今天给大家介绍的这个 go-str-utils 专门的字符串处理实用函数库中的 字符串命名转换 大小驼峰, snake, kebab命名转换。 各种命名转换规则和示例 CamelStr 大驼峰 单词全部首字母大写 如: User…

[补题记录]LeetCode 167.两数之和 II - 输入有序数组

StarryCoding 是面向计算机专业学生的综合学习与刷题平台&#xff0c;欢迎同学们的加入&#xff01; 传送门&#xff1a;两数之和 II - 输入有序数组 Thought/思路 答案只需要返回两个下标&#xff0c;表示和为 target 的两个数。 我们可以用一个 map<int, vector> 维…

面试题:useEffect的Clean Up 什么时候触发?

​ useEffect作为做常用的Hook&#xff0c;以下三个知识点你有必要了解下~ 防止写出奇怪的代码祸害队友&#xff0c;而我不幸就是这个受害者&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; useEffect的依赖项为空 useEffect的dependencyList作为一个可选参数…

Pytest框架中用例用例执行常用参数介绍

pytest 支持通过命令行参数来定制测试运行的方式。以下是一些常用的 pytest 执行参数介绍。 学习目录 -q 或 --quiet: 安静模式&#xff0c;只显示进度和摘要 -s : 选项允许在测试的输出中捕获 stdout 和 stderr。 -v : 选项会使 pytest 的输出更加详细。 -k &#xff1a;…