avatar
Articles
104
Tags
23
Categories
5

Home
Archives
Tags
Categories
About
Yuchen You
Search
Home
Archives
Tags
Categories
About

Yuchen You

1. Distributed Data Parallel
Updated2026-03-20|mlsys•cuda•gpu
1. DDP 是什么 DDP(Distributed Data Parallel)是 PyTorch 官方提供的分布式数据并行训练机制; 它的核心思想是: 让多个训练进程各自持有同一个模型的副本, 分别处理不同的数据子集, 并在反向传播阶段自动同步梯度, 从而保持所有模型副本的一致更新; 一句话概括: 多进程 + 多副本 + 数据切分 + 梯度同步 2. DDP 要解决什么问题 深度学习训练通常面临两个核心限制: 单张 GPU 的计算吞吐有限 单张 GPU 每一步能处理的数据量有限 如果只用单卡训练, 随着模型和数据规模变大, 训练速度会越来越慢; DDP 的目标是: 利用多张 GPU 并行处理更多数据 在提高吞吐的同时, 仍然保持"训练的是同一个模型" 让多卡训练的优化语义尽量接近单卡上的大 batch 训练 因此, DDP 本质上是在解决: 如何让多个 GPU 高效, 稳定地共同训练同一个模型; 3. DDP 的设计理念 DDP 的设计建立在一个基本前提上: 如果单张 GPU 能放下完整模型, 那么最自然的数据并行方式不是切模型, 而是 ...
0. 基本 GPU 架构
Updated2026-01-15|mlsys|mlsys•cuda•gpu
Data-Level Parallelism (DLP) 在前面的工作中我们主要学习的 并行架构 就是 pipelining 简单的做法就是并行使用多个 核 core 或者使用多个硬件结构实现并行, 但是这里要讨论的是 数据层面的并行 在固有的处理器中, 我们计算如下公式 12for(i = 0; i < 100; i++) z[i] = A * x[i] + y[i]; 很显然这一步可以用矩阵和向量等式进行优化 即表达式 z⃗=A⋅x⃗+y⃗\vec z = A\cdot \vec x + \vec yz=A⋅x+y​ 那么接下来的问题就是如何用硬件快速计算向量 SIMD 方法论 基础方法称为 single insturction single data 处理, 即每个指令获取一个对应的 data 部分, 但是事实上我们可以从一个指令调用多个 变量(来自一个 vector 的多个相关变量) 这就是 simd (可以在单核处理器上面有出色表现) 当然也可以 多个指令调用多个变量, 这个取决于多核同时工作 对比 cpu 和 gpu, 我们会发现当我们要处理大量相同类型的数据的时候 ...
10. Tradeoffs btw
Updated2025-12-16|distributed_sys•Consensus
平衡的背景 利用冗余(replicas)来降低尾延迟(tail latency), 以及它和 Paxos 共识, load / sharding 之间的关系; 核心是: 复制本来是为了容错/可用性, 但你也可以把它当成"多条独立路径/多台机器"的并行机会, 用来对抗偶发慢请求; 一个 key 有多个副本(N replicas); - 正常读: 只读一个副本 - 好处: 负载低, 便宜 - 风险: 这一次刚好遇到这个副本慢(GC, 排队, 抖动), 尾延迟就被拖垮 First idea: read from all in parallel(最直接: 全部并行读, 取最快) 做法: 同时向所有副本发 GET, 拿到第一个返回就用(其他请求丢掉/忽略); 优点: 尾延迟会显著下降(你拿的是 min(response times)) 问题(slide 点出的): 系统负载和成本暴涨 每次读都变成 N 倍 RPC 平均延迟可能更好, 但整体排队更严重, 反而把系统推到更拥塞, 导致更差的 tail 所以"全并行"通常太贵, 只能在极少数场景用; Sec ...
8. Sharding, Facebook and Implementation
Updated2025-12-15|distributed_sys
分片 (Sharding) 分片是分布式系统设计中的一个关键概念, 它与复制(Replication)一起, 构成了构建大规模系统的基础; 分片的本质与目标 分片的本质在于解决单一机器的限制和不可靠性问题,; 复制(Replication): 通过复制数据来使机器可靠(reliable), 提高容错性; 分片(Sharding): 通过分割数据来提高机器的容量限制 (raise the machine’s limits); 分片适用于任何存储系统, 通常是通过将 键空间(key space) 分割到多个复制对(例如主/备份对)来实现; Facebook 架构中的分片应用 复制存储: 数据库在所有数据中心之间进行复制(replicated), 可以想象每个数据中心都包含一份完整的数据拷贝,; 数据库分割: 数据库被分割成多个分片(shards), 每个数据元素都属于一个特定的分片,;     - 领导者/跟随者: 每个分片都有一个数据中心作为其领导者(leader), 其余的中心是跟随者(followers);     - 数量: 分片的数量通常远多于(many more)数 ...
7. Eventual Consistency
Updated2025-12-14|distributed_sys•Consensus
简单介绍 最终一致性位于一致性谱系的末端, 比线性一致性(Linearizability), 顺序一致性和因果一致性都要弱; 如果对某一数据项不再有新的更新写入, 那么在经过一段时间后, 所有未来的读取操作都将反映最新的写入结果 没有时间限制: 系统对收敛到一致状态所需的时间没有界限,;这个时间长短取决于通信模式的可用性(例如, 如果节点长期不通信, 收敛时间就会很长); 保证最终顺序: EC 仍然要求更新最终以相同的顺序应用到所有副本上,;这通常是通过逻辑时钟等机制来实现的, 允许更新先作为临时更新本地应用, 然后在同步时根据逻辑时间戳进行回滚和重放,; Bayou 模型 (SOSP 1995) 没有中心化存储: 所有的节点都被视为客户端,; 始终接受更新: 客户端总是接受用户发出的更新操作, 这保证了高可用性和活性; 日志记录: 所有更新都会被记录在本地日志中; 点对点同步: 客户端之间会定期进行 成对(pair-wise) 的更新交换; 临时更新: 更新通常是暂时的(tentative), 可以解决它们之间的冲突; 举例说明最终一致性 假设有一个房间日程安排应用程序(Ro ...
6. 从 FLP 不可能到 CAP 和 PACELC
Updated2025-12-14|distributed_sys•Consensus
分布式系统的不稳定性 综合我们前几个章节的内容, 我们可以总结出分布式系统中的不稳定性主要源于以下几个方面: 故障模型 (Failure Model) 在这个模型中, 对节点和网络特性的定义如下: 节点(Nodes): 它们可以无限期地失败; 它们在恢复时不会丢失持久状态; 对任何特定的计算, 它们都没有时间限制; 网络(Network): 网络可以丢弃 drop 或延迟 latency 消息; 消息可能被无限期地延迟; 网络也可能对消息进行重新排序; 异步模型 (Asynchronous Model) 上述的故障模型被称为异步模型; 在该模型下, 核心挑战在于: 无法区分 Failure 与 Slow: 在一个异步模型中, 你通常无法区分失败(例如, 请求被丢弃或远程节点死亡)和极度缓慢(例如, 网络或节点速度很慢, 响应只是尚未到达); No response 的含义: 缺少响应可能意味着请求被丢弃, 远程节点已死, 或响应被丢弃;但这也可能仅仅意味着网络或节点非常慢, 并且响应仍在路上; 也就是这些都 Not Distinguishable (无法区分); F ...
9. 分布式事务系统与 Spanner
Updated2025-12-15|distributed_sys
分布式事务系统 Distributed Transaction 根据分布式数据库系统的类似要求, 我们设计的分布式系统要支持 ACID 准则: Atomicity (原子性): 事务要么全部完成, 要么全部不做; Consistency (一致性): 事务执行前后, 数据库必须处于一致状态; Isolation (隔离性): 并发执行的事务彼此隔离, 互不干扰; Durability (持久性): 一旦事务提交, 其结果是永久性的, 即使系统崩溃也不会丢失; 如何区分 Linearizability 和 Serializability? Linearizability (线性一致性): 每个操作看起来像是瞬间发生的, 并且所有的 read 都会反映已经发生的所有 write 的结果 Serializability (可串行化): 并发执行的事务的结果与某个串行执行的顺序相同 Strict Serializability: 结合了线性一致性和可串行化的概念 也就是外界看到的顺序和实际执行的顺序是一致的 Isolation 问题与二相锁 (2PL) 一个常见的 i ...
5. Transaction and ACID DB
Updated2025-11-30|distributed_sys•database
ACID 准则 在讨论支持并发的文件系统 (包括 482 p4 NFS, DBMS 等) 的时候, 我们往往会提到一个非常核心的准则: ACID 准则. Atomicity (原子性): 事务是一个不可分割的工作单位, 要么全部完成, 要么全部不做; Consistency (一致性): 事务的执行必须使数据库从一个一致性状态转变到另一个一致性状态; Isolation (隔离性): 并发执行的事务彼此之间是隔离的, 一个事务的中间状态对其他事务不可见; 两个事务并发的时候不能互相冲突 Durability (持久性): 一旦事务提交, 它对数据库的修改就是永久性的, 即使系统崩溃也不会丢失. 更多是从 recovery 恢复角度来讲的, 也就是尽量能在任何崩溃情况下都不丢数据;具体看 [Logging](#Log 日志结构) 章节和 Recovery 章节 并发控制的数据库系统 并发控制与隔离性的基础 事务 (Transaction): 事务是 DBMS 中变化的基本单位;它是在数据库上执行的一系列操作(如 SQL 查询), 以完成某种高级功能; 事务的抽象视图 ...
4. Database Storage Structure
Updated2025-11-14|database
Database Storage Disk-Based Architecture(磁盘架构) DBMS 假定数据库的主存储位置在非易失性磁盘 (Disk / SSD); 系统组件负责在 volatile memory(主存) 与 non-volatile storage(磁盘) 之间移动数据; Storage Hierarchy(存储层次) CPU Registers < CPU Cache < DRAM < SSD < HDD < Network Storage 越靠上速度越快, 容量越小, 成本越高; DBMS 设计目标: 最大化利用高速层, 最小化慢速访问; 为什么不直接用 OS 管理存储 虽然可以用 mmap() 将文件映射到内存, 但: DBMS 无法控制 page replacement 策略; OS 不保证 flush 顺序; 并发写入下可能引发不可控的 page fault; 因此 DBMS 自己实现 Buffer Pool, Page Replacement 与 Flush 策略更可控; 常见 OS 辅助机制: madvise: 告 ...
5. Consensus: Paxos Made Simple (not to me)
Updated2025-12-16|distributed_sys•Consensus
Introduction 上回书我们说到, PB 复制存储的设计对比 Replicated State Machine (RSM) 有 Fault Tolerant 方向的极大优点, 也就是 RSM 在某个节点卡住的时候会导致整个系统卡顿, 因为 RSM 利用了 Lamport Clock 逻辑顺序的 握手机制来达到实际上的全局一致顺序, 如果局部卡死我们这里的握手就无法达成, 逻辑链就断掉了 但是 PB 肯定也有其缺点 不然为什么还要特意讲讲 RSM, 在我们实现了 PB 设计的原理基础上, 让我们来看看 PB 设计的缺点: PB 同步链路失效: 这样其实就卡死了, 因为 priamry 一定要同步给 backup 但是由于 link 挂了, 整个同步就无法成立 Primary Push 过程失效: 如果 primary 在 push 的时候挂了, 那么 backup 永远收不到更新, 也就永远无法同步 因此我们折中派就要考虑如何优化 RSM 来修复 PB 的这两个问题了, 而且 RSM 在带宽上肯定是更有优势的 (每个 RSM node 都可以接收外来请求) 设计目标 (从整个 ...
12…11
avatar
Yuchen You (Wesley)
Articles
104
Tags
23
Categories
5
Follow Me
Announcement
This is my Blog
Recent Post
1. Distributed Data Parallel2026-03-19
0. 基本 GPU 架构2026-01-14
10. Tradeoffs btw2025-12-14
8. Sharding, Facebook and Implementation2025-12-13
7. Eventual Consistency2025-12-13
Categories
  • cs_basic25
  • cybersecurity12
  • eecs2817
  • math9
  • mlsys1
Tags
system_failure cuda unix Consensus network operating_system schedule p_np mlsys chaos_system computability distributed_sys database virtual_machine cyber_security computer_composition memory kernel algorithm gpu container sql structure
Archives
  • March 20261
  • January 20261
  • December 20254
  • November 20253
  • October 20255
  • September 202521
  • August 20253
  • June 20251
Info
Article :
104
UV :
PV :
Last Update :
©2020 - 2026 By Yuchen You (Wesley)
Framework Hexo|Theme Butterfly
welcome to my blog!
Search
Loading the Database