1 / 44

面向科学计算 的 用户级检查点系统

中国科学院 计算技术研究所 ( 2009 硕 )毕业论文 答辩试讲. 面向科学计算 的 用户级检查点系统. 学生 :张福玺 导师 :赵晓芳 2012 年 3 月. 提纲. 研究背景 相关研究工作 关键 技术 DCR3 设计 与 实现 测试与评价 总结. 提纲. 研究背景 相关研究工作 关键 技术 DCR3 设计 与 实现 测试与评价 总结. 科学计算离不开 HPC. 利用超级计算机求解科学问题、进行科学模拟. 实例 1 Franklin ( 2010.11 Top500 Rank26 ) 32,000 processors 模拟 超新星.

awena
Download Presentation

面向科学计算 的 用户级检查点系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 中国科学院 计算技术研究所(2009硕)毕业论文答辩试讲 面向科学计算的用户级检查点系统 学生:张福玺 导师:赵晓芳 2012年3月

  2. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  3. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  4. 科学计算离不开HPC • 利用超级计算机求解科学问题、进行科学模拟 实例1 • Franklin(2010.11 Top500 Rank26) • 32,000 processors • 模拟超新星 实例2 • Jaguar(2010.11 Top500 Rank2 ) • 核聚变 • 模拟电波向里传播加热聚变等离子

  5. 高性能计算机系统规模迈入P级 • 科学计算迈入千万亿次计算时代 • MTBF随规模的增大而迅速降低

  6. 科学计算的容错需求 • P级系统,一次全系统检查点将耗时30分钟! • P级科学计算对检查点技术的需求 • 检查点设置低开销 • 检查点文件保存高可靠性与透明迁移 • 自动化的故障处理:自动故障检测与应用重启恢复

  7. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  8. 进程检查点 • 系统级检查点 • 在核心层实现进程状态的保存和恢复 • 透明性好、移植性较差、开销大 • EPCKPT、CRAK、BLCR、TICK • 用户级检查点 • 目标进程的用户态上下文中进行保存和恢复 • 自定义要保存的进程状态和数据 • 有效降低检查点操作给存储系统带来的压力 • 减少协作式检查点的同步开销

  9. 用户级检查点实现 • Condor • 层次化架构、提供灵活的资源管理服务 • 检查点仅支持单进程任务,不支持使用fork及类似系统调用的任务 • CHK-LIB • 支持用户定义的检查点(user-defined checkpointing)的通信库 • 不保存系统变量,如进程栈、进程寄存器等信息 • 调用检查点时,应用必须处于一致的状态 • Libckpt • 增量检查点、写时复制检查点 • 用户定制的检查点 • 可定制要保存的检查点内容 • 程序指定可进行检查点的位置(同步检查点)

  10. 并行检查点 • 进程检查点 • 基于BLCR:LAM-MPI,MVAPICH2,MPICH2 • 通信通道检查点 • TCP/IP • 用户级,清空通信通道 • 内核级,修改协议栈:TCPCP2 • 增加中间层方法,ZAP容器:Cruz • InfiniBand • 用户级,清空通信通道:MVAPICH2 • 内核级:暂无 • 同步控制 • 非协同检查点,多米诺效应 • 协同检查点 • CoCheck,OpenMPI,AMPI

  11. 自动化故障处理 • 自我感知故障、自我修复、自我管理 • University of Wisconsin: • Condor • Lawrence Livermore National Laboratory: • Simple Linux Utility for Resource Management(SLURM) • Platform Computing: • Platform LSF • IBM: • Autonomic Computing

  12. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  13. 降低检查点开销 • 内存排除 • 如何定位可以被排除的内存:如只读内存 • 每次检查点如何最大程度地排除内存 • 透明的内存排除技术 • 代码段:无需保存,恢复时从可执行文件中重新载入 • 利用栈指针:无需保存当前栈指针以下的内存区 • 增量式检查点:利用页式虚存管理 • 缺点:以页为单位识别,粒度较粗 • 程序员指导的内存排除 • 科学计算程序经常分配大量的内存作为临时数组等数据结构,可在进程状态恢复操作之后进行重建 • 通过应用程序辅助,向检查点库指出“不重要”的数据区域

  14. 降低检查点开销(续) • 无盘检查点 • 频繁的无盘检查点 • 相对较长间隔的稳定存储检查点 • 写时复制 • 隐藏检查点操作所消耗的时间 • 检查点操作与程序运行并行执行 • 无需立刻将所有数据复制到缓冲区中 • 利用页式虚拟存储器的功能,将程序空间内的所有页都置为“只读” • 程序修改某一页面时才将该页面复制到缓冲区

  15. 降低检查点开销(续) • 检查点在线压缩 • 要求压缩的时间小于因数据量减少而节约的时间 • 设定S为检查点数据大小,C为压缩速度,f为压缩率,D为磁盘写速度 • 压缩算法对比 • 选用Snappy算法

  16. 空闲结点 计算结点 进程 进程 检查点文件存储技术 1 磁盘 磁盘 3 • 本地存储: • 延迟小、减少网络竞争 • 节点失效导致状态不可恢复 • 全局共享存储: • 维护可靠性 • 延迟大、增加网络竞争 • 两级存储:本地存储+全局共享存储 4 2 全局共享存储

  17. 副本备份 • 副本放置(三副本): • 本地节点 • 本机架另外一个节点 • 不同机架的一个节点 • 当副本数小于3,找到新节点复制副本,保证总是3副本 • 读取优先级: • 本地节点副本 > 本机架副本 > 其他机架副本

  18. 流水线复制副本 结点j 客户端 结点i 结点k t0 建立管道 建立管道 t1 逻辑块0 逻辑块0 数据流 逻辑块2 逻辑块3 t2 关闭管道 结束 t3

  19. GCTRL 故障检测 DCRD DCRD DCRD • 常用检测技术 • 系统定时巡检: • 每隔一定时间周期就对被检测对象进行一次检测 • 时间周期短,故障检测的精确度高 • 通信开销大 • 心跳检测: • 在一段时间间隔向外广播自身的状态 • 网络延迟易导致误判 • 结合定时巡检与心跳检测 • 应用进程端采用心跳检测,周期T2 • GCTRL定期巡检,周期T1( T1>T2 ) • 引入DCRD • GCTRL检测DCRD • DCRD检测本地应用进程 进程 进程 进程 进程 进程 进程 进程 进程 进程

  20. 自动化重启恢复

  21. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  22. GCTRL DCR3系统组件关系 CT 网络 t DCRD APP libdcr3 PPS MPI 用户层 内核层

  23. GCTRL 核心控制网络 DCRD集 • GCTRL将节点分组(同一机柜/刀片箱) • 每组一个中转节点 • 短连接、无通信时不保持连接 • GCTRL与各DCRD消息均由组内中转DCRD转发 • GCTRL统一管理DCRD分组信息

  24. 用户函数库 • 编程时调用接口,链接时链入libdcr3 • 关键的函数: /* 注册应用与MPI进程, * app_string用于标识应用本次运行字符串。*/ int dcr3_init(const char *app_string); /* 注销应用。类似MPI_Finalize()函数。*/ int dcr3_finalize(void); /* 检查点请求。*/ int dcr3_ckpt(char **ckpt_data, int *data_len, int data_num); /* 重启请求。 */ int dcr3_rstr(int round, char ***rstr_data, int **data_len, int *data_num);

  25. data_len 用户函数库(续) ckpt_data • 各参数关系 • int dcr3_ckpt(char **ckpt_data, int *data_len, int data_num) data_num

  26. 检查点文件格式 dcr3 标明为dcr3应用 /tmp/msFEM/0/ 0.2.0 dcr3版本号 0.info.ckpt.dcr3 msFEM 应用标识串 200 本次运行总进程数 0.0.ckpt.dcr3 检查点存储根目录:系统配置 0 第0次检查点 0.1.ckpt.dcr3 应用本次运行的检查点文件目录:dcr3_init()指定 0 第0次检查点 第N次检查点目录名 1 RANK号为1的进程 data_num 后续数据总条数 第M号进程检查点文件名 data_len[] 后续每条数据长度 ckpt_data[0] 第0条数据 ckpt_data[1] 第1条数据

  27. PPS(Peta Particle Storage)子模块 • 为libdcr3提供文件操作相关接口 • 分布式文件系统采用HDFS,封装实现 • 文件系统的改变无需应用重编译/链接 • HDFS相关特性: • 副本备份 • 采用三副本存储 • 数据校验 • 流水线写 • Java虚拟机 • 可能会影响存储时间开销

  28. 自容错机制 • 初始部署:结点列表文件 • 运行时故障 • gctrl/dcrd异常崩溃 • watchdog监视运行,日志文件保存运行信息 • 重启进程,读取日志文件 • dcrd结点故障 • gctrl定期广播,故障结点被标记为坏结点 • 修复后,启动dcrd通知gctrl • gctrl结点故障 • 人工选择可用结点,重启gctrl • 故障时应用处于运行中 • 检查点时:检查点失败,应用异常退出 • gctrl触发自动重启 • 非检查点时:不影响应用运行

  29. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  30. 测试环境 • 曙光6000刀片机 • 两颗Intel(R) Xeon(R) X5675六核CPU • 内存48 GB、千兆以太网与InfiniBand • SUSE Linux Enterprise Server 10 • linux- 2.6.16.60-0.21-smp • MPI实现:MPICH2 • 测试应用:msFEM(18节点、NP=216) • 三维、非线性、大变形多尺度材料模拟程序,基于塑性梯度理论,可以考虑温度-率相关性和材料损伤 • 有限单元数量从一百万到一千万

  31. 检查点总开销 • 检查点时间间隔300s • HDFS:Java虚拟机的参与,占用较多计算资源

  32. 单次检查点开销 • 与BLCR相比,开销减少85%以上 • 使用COW技术,隐藏检查点开销

  33. 检查点延迟 • 与BLCR相比,延迟减少大约75% • 检查点数据量小 • 同步开销小 • HDFS的sync只保证数据到达数据结点,并不保证数据已完全在磁盘上了

  34. 检查点文件空间开销

  35. 重启开销 • 纵轴为重启时间(秒)取基数为10的对数 • HDFS:Java虚拟机、数据迁移

  36. GCTRL 扩展性模拟测试 DCRD • 同组节点的DCRD放到同一个节点上 • 本组中转结点与本组其他DCRD在不同节点上 • 确保所有消息均是节点间传输 • 模拟2000个节点 • GCTRL发送到收到所有回复消息时间小于0.2秒 • 定期巡检周期2秒,收到所有回复小于2.5秒 • 结论:没有因为自身规模的增加而导致网络延迟的增加 DCRD集合

  37. 提纲 • 研究背景 • 相关研究工作 • 关键技术 • DCR3设计与实现 • 测试与评价 • 总结

  38. 总结 • 本文主要的工作和贡献主要体现在以下三个方面: • 提出了以应用数据为中心的检查点,仅保存与应用指定的数据,与系统级实现相比大幅提升性能。 • 检查点开销减少85%以上 • 检查点延迟减少大约75% • 存储空间开销减少70%以上 • 设计并实现了一个自动化的检查点系统DCR3 • 映像文件管理、故障检测、故障恢复、节点替换 • 提高DCR3系统可扩展性,使得可以支持曙光6000机群系统上千节点规模

  39. 下一步工作 • 对曙光6000的全规模的压力测试与调优。 • 支持灵活多变的进程数可变重启。重启时根据系统可用计算核数调整重启的进程数,与应用合作完成检查点数据的重新分割。 • 检查点数据存储的负载平衡,动态调节各结点存储负载。

  40. 课程情况 • 本人已经按照研究生院课程要求修完全部课程,并获得毕业所要求的学分。

  41. 工程情况 • 参与PetaParticle项目中用户级检查点系统DCR3的设计、开发和调试工作。

  42. 谢谢!

  43. GCTRL GCTRL 系统框架 CT 网络 DCRD集 t DCR3系统组件关系 DCR3分层拓扑结构 DCRD APP libdcr3 PPS MPI 用户层 内核层

More Related