周报汇总(持续更新)
202410
1009
plato代码理解
./plato.servers.registry
服务器的导入和实例化
./plato.config.Config
配置文件信息的读取和解析
1005
plato实验:FedAvg
1004
plato实验:FedMos
1003
plato实验
FedSCR
Wu et al., “FedSCR: Structure-Based Communication Reduction for Federated Learning, ” IEEE Trans. Parallel Distributed Syst., 2021.
配置文件
1234567891011121314# The total number of clientstotal_clients: 10# The number of clients selected in each roundper_round: 2# The training and testing datasetdatasource: MNIST# The maximum numbe ...
Papers:FIGRET
FIGRET: Fine-Grained Robustness-Enhanced Traffic Engineering
Ximeng Liu, Shizhen zhao, Yong Cui, and Xinbing Wang. 2024. FIGRET: Fine-Grained Robustness-Enhanced Traffic Engineering. In ACM SIGCOMM 2024 Conference (ACM SIGCOMM ’24), August 4–8, 2024, Sydney, NSW, Australia. ACM, New York, NY, USA, 19 pages. https://doi.org/10.1145/3651890.3672258
名词/概念
average Maximum Link Utilization
平均最大链路利用率是指在网络性能分析中,针对所有网络链路计算它们的最大利用率,然后对这些最大值进行平均。解释如下:
Maximum Link Utilization:单个链路的最大利用率,指该链路在某段时间内承载 ...
计算机网络:应用层
应用层:协议原理
如何创建一个新的网络应用?
编程:
应用在不同的端系统上运行:网络应用只在用户的设备或服务器上执行。
通过网络基础设施提供的服务,应用进程之间进行通信。例如,Web服务器软件与浏览器进行交互,传递网页数据。
网络核心没有应用层软件:
网络核心只负责数据传输:它不执行任何应用层软件,也不处理应用层功能。
网络应用只存在于端系统:所有应用功能和逻辑都在端系统中实现,不需要对网络核心进行改动。
快速的开发和部署:由于网络核心无需处理应用层逻辑,网络应用的开发和部署过程更为高效。
网络应用的体系结构
可能的应用架构:
客户-服务器模式 (C/S: Client/Server)
对等模式 (P2P: Peer-to-Peer)
混合模式:客户-服务器和对等体系结构的组合
C/S模式
服务器:
一直运行
固定的IP地址和周知的端口号(约定)
扩展性: 服务器场
数据中心进行扩展
扩展性差
客户端:
主动与服务器通信
与互联网有间接性的连接
可能是动态IP地址
不直接与其他客户端通信
问题:
传统的单一服务器架构可能存在扩展性限制。当负载增 ...
Papers:HPN
Alibaba HPN: A Data Center Network for Large Language Model Training
概念/名词
Equal-Cost Multi-Path (ECMP)
一种网络负载均衡技术,用于通过多条具有相同代价的路径转发数据包,从而提升网络带宽和容错性。
多路径选择:当从源到目的地有多条路径,而且这些路径的代价(通常根据跳数、带宽、延迟等计算)相同,ECMP 允许网络设备(如路由器或交换机)同时使用多条路径进行数据转发。
流量分配:ECMP 通过哈希算法来分配流量。哈希算法会根据数据包(网络设备可能需要转发多个数据包)的特定字段(如源地址、目的地址、源端口、目的端口等)生成一个哈希值,然后将数据包分配到这些等价路径中的其中一条。哈希算法的目的是尽量保证数据包流的一致性,使同一个流(例如 TCP 连接)始终走同一条路径,以避免乱序问题。
负载均衡:ECMP 通过在多条路径上分发数据流,达到负载均衡的效果,进而提升网络的吞吐量和资源利用率。
优点
带宽扩展:通过使用多条路径,网络带宽可以得到有效扩展。
容错性:如果一条路径出 ...
Papers:MCCS
MCCS: A Service-based Approach to Collective Communication for Multi-Tenant Cloud
研究背景
集体通信在支持许多分布式计算工作负载中起着至关重要的作用。目前有多种广泛使用的集体通信库,如NVIDIA的NCCL、Intel MPI库、OpenMPI和Gloo等。这些库提供了常用的集体通信原语(如AllReduce和AllGather),开发者可以通过将这些库直接链接到其应用程序中来使用。在这些库的高级API之下,集体通信原语通过各种算法(例如基于环或树的AllReduce)实现,并且通常针对硬件进行了高度优化(如NVIDIA的SHARP)。
聚焦问题
在多租户的云环境中,现有集体通信方法的局限性:
缺乏物理网络拓扑信息:在公有云环境中,云租户(使用云服务的用户)通常无法获取底层物理网络的拓扑结构和链路利用率信息。而这些信息对选择高效的通信算法非常重要,比如在分布式训练中经常使用的环形算法(ring-based algorithms)和树形算法(tree-based algorithms)。由于租户没有这类 ...
计算机网络:协议层次和服务模型
协议层次和服务模型
层次化方式实现复杂网络功能
将网络复杂的功能分成,功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务(功能的子集)
本层协议实体相互交互,执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
在实现本层协议的时候,直接利用了下层所提供的服务
本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+ 更下层所提供的服务
服务和服务访问点
服务Service:低层实体向上层实体提供它们之间的通信的能力
服务用户(service user)
服务提供者(service provider)
服务访问点(service access point),如传输层的socket套接字,区分不同的上层用户;端口(port)
原语primitive:上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语进行交互的
如传输层向应用层提供的原语:关闭socket
服务的类型
面向连接
定义:在传输数据之前,发送方和接收方需要先建立一条连接,数据传输完成后再 ...
计算机网络:分组延时、丢失和吞吐量
分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列
分组到达链路的速率超过了链路输出的能力
分组等待排到队头,被传输
链路的队列缓冲区容量有限->丢失(分组到达一个满的队列时)
丢失的分组可能会被前一个节点或源端系统重传,或根本不重传。
四种分组延时
节点处理延时
检查bit级差错
检查分组首部,决定将分组导向何处
排队延时
在输出链路上等待传输的时间
依赖于路由器的拥塞程度
传输延时
R=链路带宽(bps)
L=分组长度(bits)
将分组发送到链路上的时间=L/R
存储转发延时
传播延时(空间上)
d:物理链路的长度
s:在媒体上的传播速度(约2x10^8 m/sec)
与R(链路带宽)做区分
传播延时=d/s(最后一个bit从出发到终点所经历的时间)
两个节点如果比较近,这个时间可以忽略
节点延时
dprocd_{proc}dproc:处理延时,通常是微秒数量级或更少
dqueued_{queue}dqueue:排队延时,取决于拥塞程度
dtransd_{tran ...
计算机网络:Internet结构和ISP
Internet结构和ISP
互联网络结构:网络的网络
端系统通过接入ISPs(Internet Service Providers)连到互联网
住宅,公司和大学的ISPs
接入ISPs相应的必须是互联的
因此任何2个端系统可相互发送分组到对方
导致的“网络的网络”非常复杂
发展和演化是通过经济的和国家的政策驱动的
让我们采用渐进方法描述当前互联网的结构
将每两个ISPs直接相连的问题?不可扩展,代价很大,全连接nnn个ISP需要n2n^2n2量级的链路。
将每个接入ISP都进接到全局ISP(全局范围内覆盖)?客户ISPs和提供者ISPs有经济合约。
但是,如果全局ISPs是可行的业务,有利可图,一定存在竞争关系。也即出现多个global ISP。
合作:通过ISPs之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系(可以通过IXP:Internet Exchange Point进行互联)。
然后业务会细分(全球接入和区域接入),区域网络将出现,用于将接入ISPs连接到全局ISPs。
区分ISP与ICP,后者为内容提供商,如谷歌、百度。当然,后者 ...
POSTS
POSTS
计算LLM需要多少GPU内存的公式和工具
对偶问题
对偶方式
拉格朗日对偶
共轭对偶(非线性优化中用得比较多)
拉格朗日对偶
对原问题的每个约束引入对偶变量(对偶变量也可以称作影子价格,表示满足该约束成立的cost),然后进行线性组合。
线性规划的对偶模型
原始模型->对偶模型
原始约束->对偶变量
原始变量->对偶约束
因此,一个模型是因为约束很多而很难处理时,就可以转变对偶,变成一个约束少变量多的对偶模型。
对于约束很多的模型可以用行生成的方式来处理;对变量很多的模型可以采用列生成的思路来处理。
例
线性规划中一个经典问题的描述如下:
某工厂有两种原料A、B,而且能用其生产两种产品: 1、生产第一种产品需要2个A和4个B,能够获利6;
2、生产第二种产品需要3个A和2个B,能够获利4; 此时共有100个A和120个B,问该工厂最多获利多少? 设变量为(x1,x2)(x_1,x_2)(x1,x2),表示生产两种产品的数量。将上面的问题用数学表达式描述如下:
max 6x1+4x2s.t.2x1+3x2≤1004x1+2x2≤1 ...
Papers:TE-CCL
CacheGen: KV Cache Compression and Streaming for Fast Large Language Model Serving
研究背景
分布式机器学习训练中的数据传输:集体通信
集体通信原理
输入
拓扑结构(topology):表示网络中节点(如服务器、GPU)和连接方式(如网络链路)的布局。
需求(demand):the amount of data each GPU wants to send to other GPUs in the topology
输出
路径(routes):在网络中为每个通信任务选择合适的传输路径,确保数据能够高效地从一个节点传递到另一个节点。
调度(schedule):为各个任务分配时间和资源,使得任务可以在不同的时间点按计划执行,避免资源冲突。
通过上面两个输出,来最大化带宽利用率/最小化任务完成时间,或者两者都有优化。
问题:现有集体通信方案的局限性
在应对大规模集群时可能会为了扩展性而牺牲质量。
相关工作
精确建模
如MSCCL:精确地建模系统及其计算方面,努力获得接 ...