[源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期 目录 [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期 0x00 摘要 0x01 Worker 是什么 1.1 角色 1.2 职责 1.3 组网机制 1.3.1 通信环 1.3.2 弹性构建 1.3.2.1 Driver 监控 1.3.2.2 Driver 重新构建 0x02 总体生命流程 0x03 配置过程 0x04 启动过程 4.1 总…
[源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 目录 [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 0x00 摘要 0x01 总述 1.1 问题点 1.1 角色 1.2 容错机制 1.4 监控机制 1.5 官方架构图 0x02 示例代码 2.1 python代码 2.2 脚本执行 0x03 逻辑流程 3.1 逻辑流程 3.2 入口点 3.3 主逻辑 3.4 出错处理 0xEE 个人信息 0xFF 参考 0x00…
[源码解析] 深度学习分布式训练框架 horovod (13) --- 弹性训练之 Driver 目录 [源码解析] 深度学习分布式训练框架 horovod (13) --- 弹性训练之 Driver 0x00 摘要 0x01 角色 1.1 角色设定 1.2 职责 0x02 调用部分 2.1 _run 2.2 _run_elastic 2.3 gloo_run_elastic 2.4 get_common_interfaces 2.5 获取异地网卡信息 2.6 launch_gloo_elast…
[源码解析] 深度学习分布式训练框架 horovod (14) --- 弹性训练发现节点 & State 目录 [源码解析] 深度学习分布式训练框架 horovod (14) --- 弹性训练发现节点 & State 0x00 摘要 0x01 设计点 0x02 发现机制 2.1 发现脚本 2.2 HostManager 2.2.1 order_available_hosts 2.3 配置 0x03 如何调用 3.1 无限循环线程 3.1.1 定时探寻 3.1.2 通知变化 3.2 如何通知…
[源码解析] 深度学习分布式训练框架 horovod (17) --- 弹性训练之容错 目录 [源码解析] 深度学习分布式训练框架 horovod (17) --- 弹性训练之容错 0x00 摘要 0x01总体思路 0x02 抛出异常 2.1 示例代码 2.2 HorovodInternalError 2.3 HostsUpdatedInterrupt 2.4 总结 0x03 处理异常 3.1 总体逻辑 3.2 恢复 3.3 重置 3.3.1 reset 3.3.2 _HorovodBasics…
在分布式通信系统中,网络传递的是二进制流,而内存中是我们基于对象模型构建的各种各样的对象,当我们需要将一个对象通过网络传递给另一个节点时,首先需要将其序列化为字节流,然后通过网络发送给目标节点,目标节点接收后,再反序列化为对象实例.在ESFramework体系中,也是遵循同样的规则. ESFramework称这些需要经过网络传递的对象称之为协议类(Contract),协议类通常只是一个简单的数据结构封装,用于保存状态的一个哑类(不包含任何方法,从object继承的除外),有点类似于与数据库中表进…
[源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 目录 [源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 0x00 摘要 0x01 背景知识 1.1 Kubernetes 1.2 容器作为调度单元 1.3 Kubeflow 1.4 Tensorflow on Kubeflow 1.5 Operator 1.6 TF-Operator 0x02 TensorFlow 分布…
[源码解析] 深度学习分布式训练框架 horovod (19) --- kubeflow MPI-operator 目录 [源码解析] 深度学习分布式训练框架 horovod (19) --- kubeflow MPI-operator 0x00 摘要 0x01 背景知识 1.1 MPI 1.2 Open-MPI 1.3 MPI Operator 0x02 设计思路 2.1 架构图 2.2 角色 2.3 主要过程 2.4 CRD 的定义 2.5 创建 2.6 终止 0x03 实现 3.1 K8S…
[源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练 目录 [源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练 0x00 摘要 0x01 总论 0x02 Sampler 2.1 PyTorch Distributed Optimizer 2.1.1 定义 2.1.2 问题点 2.2 ElasticSampler 2.2.1 定义 2.2.2 弹性方案 2.2.2.1 常规流程 2.2.2.2 异常处理 2.2.1 如何使用 2…
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 目录 [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 0x00 摘要 0x01 问题 1.1 HorovodInternalError 1.2 HostsUpdateInterrupt 0x02 广播机制 2.1 广播实现 2.1.1 TensorFlowKerasState 2.1.2 广播模型 2.1.3 广播变量 2.1.4 广播对象 2.1.5 HVD C…