收藏:大规模RDMA技术实践
架构师技术联盟
共 7144字,需浏览 15分钟
· 2022-06-09
近期打算提纲挈领地整理一下工业界已经使用起来或有潜力使用起来的大规模RDMA相关技术,供大家参考,也为自己梳理一下脉络。里面每一章甚至每一节的内容都可以单独写成一篇文章,待后续点赞情况和评论情况再进行更新,也欢迎学界和业界的各位同行朋友批评指正,多提宝贵意见。注:此技术杂谈面向有一定网络和系统基础的同学。
作者简介:
2.1 RDMA拥塞控制算法
DCQCN算法:目前Mellanox网卡支持的主要拥塞控制算法,由微软和Mellanox联合研发,在交换机上以ECN为拥塞标记信号,发送者在主机网卡侧根据ECN标记情况来推测网络拥塞情况,实现了一种基于速率(rate-based)的调速方法,是目前Mellanox RDMA网卡商业上直接可用、使用最为广泛的拥塞控制算法。算法主要思想参考Congestion Control for Large-Scale RDMA Deployments,SIGCOMM 2015
TIMELY和Swift算法:Google数据中心中使用的拥塞控制算法,交换机不需要做额外的支持,发送者在主机网卡上对端到端往返延迟(RTT)进行测量,基于RTT的变化进行梯度计算,进而根据梯度实现了基于速率(rate-based)的调速方法。目前主要是在Google内部使用,依赖于Google的自研网卡。算法思想参考TIMELY: RTT-based Congestion Control for the Datacenter,SIGCOMM 2016和Swift: Delay is Simple and Effective for Congestion Control in the Datacenter,SIGCOMM 2020 HPCC算法:阿里网络研究团队研发出的拥塞控制算法,使用INT携带网络拥塞情况,发送者在主机网卡侧实现了一种基于窗口(window-based)的调速方法。受限于INT的精度、网卡实现的复杂性和对可编程交换机的依赖,HPCC目前应该只是停留在论文阶段,未有大规模部署。算法思想参考HPCC: High Precision Congestion Control,SIGCOMM 2019 其他网卡的算法:Broadcom RDMA网卡上拥塞控制算法采取了类似于DCTCP算法的变种,算法具体可以参考Data Center TCP (DCTCP),SIGCOMM,这里不再详细描述。
2.2 无损网络(Lossless)到有损网络(Lossy)的演进
2.3 RDMA多路径传输
采取Multi-path RDMA的思路,即以数据包为粒度把一个流分散到多个等价路径上,再在网卡硬件上实现大部分的Multi-path传输层逻辑,如拥塞感知的流量切分、解决接收端乱序等问题。具体思想参考微软亚研院的工作Multi-Path Transport for RDMA in Datacenters,NSDI 2018 仍然是采用把一个流分散到多个等价路径上,形成多个subflow(e.g., flowlet, flowcell),来实现更好的均衡性进而提高多链路的利用率。但是,这里不再在接收端的硬件网卡上解决乱序(out-of-order)问题,而是把这一功能放到软件层,如网卡驱动或者通讯库里面,具体思想参考亚马逊的SRD。 根据业务场景特性和流量模型特性,进行智能路由选路。如在AI训练的场景中,由于流量模型具有所有流大小相同、同时发起同时结束的属性,可以采用类似阿里ACCL的思路,进行基于源端口的有序规划,实现基于探测的拥塞感知的路由控制算法。
4.1 RDMA在机器学习训练领域的应用
Google:github.com/google/nccl- Microsoft:github.com/microsoft/ms facebook:github.com/facebookincu AWS:github.com/aws/aws-ofi- 华为:HCCL - Atlas Data Center Solution V100R020C00 中心训练解决方案概述 01 - 华为 阿里巴巴:ACCL
4.2 RDMA在存储领域的应用
4.3 在AI、存储等业务场景充分发挥RDMA潜力的小tips
Using RDMA Efficiently for Key-Value Services,SIGCOMM 2014,如何根据key-value store的特性更加合理地使用RDMA原语,让其在RDMA网络上能降低延迟和提高吞吐 FaRM: Fast Remote Memory,NSDI 2014 Fast In-memory Transaction Processing using RDMA and HTM,SOSP 2015 未完待补充...
5.1 RDMA性能优化
网卡承载了RDMA功能里面最复杂的部分,包括RDMA verbs、rkey校验、地址映射、RDMA传输层协议(go-back-N,congestion control);而交换机的功能则相对简单(PFC、ECN) 网卡上的资源非常受限,需要使用服务器的DRAM来存储它的数据结构,而只是用自己的本地DRAM作为cache;而cache管理非常复杂,经常会引入性能问题(e.g.,cache换入换出引发slow-receiver symptom)
5.2 RDMA监控和运维
7.1 微软的RDMA部署经验
7.2 阿里巴巴的RDMA在存储业务上的部署经验
下载链接:
来源:全栈云技术架构,加入全栈云技术知识星球下载全部资料。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
转载申明:转载本号文章请注明作者和来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
更多架构相关技术知识总结请参考“架构师全店铺技术资料打包”相关电子书(37本技术资料打包汇总详情可通过“阅读原文”获取)。
全店内容持续更新,现下单“全店铺技术资料打包(全)”,后续可享全店内容更新“免费”赠阅,价格仅收198元(原总价350元)。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。
评论
搭建完美的技术写作环境,第1-10章
大家好,我是章北海,《机器学习算法与 Python 实战》和《玩机器学习的章北海》号主,985 统计学硕士,5 年时间撰写了 460 余篇优质原创文章,内容涵盖统计学、数据分析、机器学习、深度学习、Python 实战。毕业之后先后从事数据分析、机器学习工程师、项目管理,这些年积累了很多经验,工作之外
机器学习算法与Python实战
0
从原理到实践:掌握DPDK内存池技术
前言:本文整理下之前的学习笔记,基于DPDK17.11版本源码分析。主要分析一下内存管理部分代码。一、概述内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。本系列文章将详细介绍DPDK提供的各种内存管理的功能。但在此之前,有必要先谈一谈为
开源Linux
0
超大规模数据中心网络架构及其技术演变
本文所讲的数据中心网络架构和技术范围是针对典型的大型互联网和云计算公司的超大规模数据中心(Hyperscale Data Center),不一定适合其他类型的数据中心网络。业界对于什么规模才算是“超大规模(Hyperscale”并没有一个精确的定义。一般来说,一个数据中心网络集群至少有 5000台服
数据中心运维管理
0
微服务与领域驱动设计,架构实践总结
来源:知了一笑👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新
小哈学Java
0
AI智能视觉检测技术在工业级测量领域的创新应用--AMB Tube-Q导管数字化测量系统
技术背景在深度学习算法出来之前,对于视觉算法来说,大致可以分为以下5个步骤:特征感知,图像预处理,特征提取,特征筛选,推理预测与识别。早期的机器学习中,占优势的统计机器学习群体中,对特征是不大关心的。深度学习是机器学习技术的一个方面,由人工神经网络提供支持。深度学习技术的工作原理是教机器通过实例学习
机器视觉
0
北斗聚焦 | 工信部组织开展2024年5G轻量化贯通行动;2024全球6G技术大会在南京召开;智能制造装备产业规模超三点二万亿元
周报第一百七十四期2024/4/15-2024/4/21△点击页面右上角“…” 选择 “查找页面内容” 搜索【一周快报】,即可跳转到新版块★★ ★ ★★NO.1工信部组织开展2024年5G轻量化贯通行动记者4月16日从工业和信息化部获悉,工业和信息化部近日印发关于开展2024年度5G轻量
今日北斗
0
6 个火爆 GitHub 的后台管理模板,快来收藏!
将Python客栈设为“星标⭐”第一时间收到最新资讯今天来给大家介绍6个火爆 G 站的管理后台模板,有了它们,对于前端不是很熟悉的小伙伴来说,再也不用烦恼了,而且有一说一,即使是前端大牛,要想从零开发一套完整的管理模板,也不是一件容易的事情。1. vue-element-admin该项目是基于 Vu
Python客栈
0
2024版,尚硅谷Java学科全套教程(289.1GB),含最新技术
尚硅谷 Java 学科全套视频,很早之前分享过一次,大概是 200G 左右,今天这个是《2024 版尚硅谷 Java 学科全套教程》,新增了 80 多个 GB,里面涵盖了 2023 年、2024 年最新更新的技术,基本上涵盖了 Java 所有的技术,共 289.1GB,文末附网盘地址。目录 基础部分
路人甲Java
0