本节内容和前节事件管理封装是息息相关的,本节内容主要包含的代码在connection{.h, .cc}中. 这里面最主要的有两个类:connection类和tcpsconn类,connetion类主要服务于单个套接字,包括套接字上的数据读取写入等,而tcpsconn类则是服务于套接字集合,如接收连接,更新失效套接字等.具体我们看头文件. class chanmgr { public: ; virtual ~chanmgr() {} }; 我们首先看到的是这个虚基类类,这个类会以委托的形式用在co…
课程主页 课程介绍:本课程会在给出的源码的基础上要求完成8个lab Lab overviewLab 1 - Lock ServerLab 2 - Basic File ServerLab 3 - MKDIR, UNLINK, and LockingLab 4 - Caching Lock ServerLab 5 - Caching Extent Server + ConsistencyLab 6 - PaxosLab 7 - Replicated lock serverLab 8 - Proje…
主要内容 ScopedLock 队列实现 线程池实现 在正式讲解线程池实现之前,先讲解两个有用的工具类: ScopedLock fifo队列 ScopedLock: ScopedLock是局域锁的实现(我也不知道叫什么,姑且这么说吧),它使用了C++中RAII(Resource acquisition is initialization资源获取即初始化),这种技巧实现的锁可在代码块开始处初始化锁,在代码块结束处释放锁,可省去try catch这样的语句,具体实现如下: struct Scoped…
这部分的内容主要包括Epoll/select的封装,在封装好相应函数后,再使用一个类来管理相应事件,实现的文件为pollmgr.{h, cc}. 事件函数封装 可看到pollmgr.h文件下定一个了一个虚基类aio_mgr class aio_mgr { public: ; ; ; ; virtual ~aio_mgr() {} }; 这便是具体事件类实现的基类,可看到文件末尾处的继承关系 class SelectAIO : public aio_mgr { public : SelectAIO…
记录一次本人学习FastDFS-分布式文件系统的学习过程,希望能帮助到有需要的人. 首选得对此技术有个大概的了解,可以参考 https://www.cnblogs.com/centos2017/p/7896761.html ,其实大致看下图知道一下就行了. 然后我们就直接开装了,网上有一大堆的安装教程这里也就不做介绍了,可以直接百度,如果有需要可以直接用我的百度网盘的 链接:https://pan.baidu.com/s/1Y07hC2tiDy_E18ZAD4YKvg 提取码:j5d0 装完测通…
[源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 目录 [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 0x00 摘要 0x01 背景 0x02 论文 2.1 引论 2.2 背景 2.3 流水线权重问题 2.3.1 问题1 2.3.2 问题2 2.3.3 问题3 2.4 PipeDream-2BW 系统设计 2.4.1 GPipe 2.4.2 Double-Buffered Weight Updates (…
[源码解析] PyTorch 分布式 Autograd (4) ---- 如何切入引擎 目录 [源码解析] PyTorch 分布式 Autograd (4) ---- 如何切入引擎 0x00 摘要 0x01 前文回忆 0x02 计算图 2.1 普通示例 2.2 分布式示例 2.3 分布式注释版 0x03 反向传播 3.1 发起反向传播 3.1.1 外部主动发起 3.1.1.1 示例 3.1.1.2 C++世界 3.1.2 内部隐式发起 3.1.2.1 BACKWARD_AUTOGRAD_REQ…
[源码解析] PyTorch 分布式 Autograd (5) ---- 引擎(上) 目录 [源码解析] PyTorch 分布式 Autograd (5) ---- 引擎(上) 0x00 摘要 0x01 支撑系统 1.1 引擎入口 1.2 SendRpcBackward 1.2.1 剖析 1.2.2 定义 1.2.3 构建 1.2.4 grads_ 0x02 定义 2.1 定义 2.2 单例 2.3 重要注释 2.3.1 成员变量 2.3.2 构建 2.3.3 GPU to CPU contin…
[源码解析] PyTtorch 分布式 Autograd (6) ---- 引擎(下) 目录 [源码解析] PyTtorch 分布式 Autograd (6) ---- 引擎(下) 0x00 摘要 0x01 回顾 0x02 执行GraphTask 2.1 runEngineAndAccumulateGradients 2.2 execute_graph_task_until_ready_queue_empty 2.3 evaluate_function 2.4 globalCpuThread 2…
[源码解析] PyTorch分布式优化器(1)----基石篇 目录 [源码解析] PyTorch分布式优化器(1)----基石篇 0x00 摘要 0x01 从问题出发 1.1 示例 1.2 问题点 0x01 模型构造 1.1 Module 1.2 成员变量 1.3 _parameters 1.3.1 构建 1.3.2 归类 1.3.3 获取 1.4 Linear 1.4.1 使用 1.4.2 定义 1.4.3 解释 0x02 Optimizer 基类 2.1 初始化 2.2 添加待优化变量 2.…