260 likes | 381 Views
面向科学计算的检查点系统. 学生:张福玺 导师:赵晓芳 2011 年 2 月 28 日. 大纲. 研究背景与意义 国内外研究现状分析 研究目标、内容和拟解决的关键技术 拟采取的研究方法、技术路线及可行性分析 预期研究成果及创新之处 已有工作基础 研究计划及预期进展 参考文献. 研究背景. 高性能计算机处理器个数快速增长,性能大幅度提升的同时,也使得平均故障间隔时间( MTBF )从数天降低至数小时甚至更低。
E N D
面向科学计算的检查点系统 学生:张福玺 导师:赵晓芳 2011年2月28日
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容和拟解决的关键技术 • 拟采取的研究方法、技术路线及可行性分析 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究背景 • 高性能计算机处理器个数快速增长,性能大幅度提升的同时,也使得平均故障间隔时间(MTBF)从数天降低至数小时甚至更低。 • 许多科学计算任务需要连续运行几十个小时甚至几个月,例如ASCI 的stockpile certification 程序以及BlueGene 当中的ab initio 蛋白质折叠程序将运行几个月。
研究背景 • 大规模科学计算 气候模型 航空学 纳米科技 天气预报
研究背景 • 由于应用的运行时间比MTBF大,如果没有对硬件故障的容错机制就会导致失效之前的计算时间浪费掉,甚至永远无法完成计算。 • 检查点技术可以使系统和应用从已发生的故障中恢复,从而减少计算损失,是一种广泛使用的软件容错技术。
研究意义 • 目前已有许多检查点容错系统,但是这些系统主要针对通用的计算程序,缺乏专门对大规模科学计算的高效容错支持 • 提高曙光6000在大规模科学计算应用方面的容错性能
国内外研究现状分析 • 进程检查点 • 系统级、用户级 • 检查点协议 • 协作式、独立式、通信引导式 • 消息日志协议 • 悲观日志、乐观日志、因果日志
国内外研究现状分析 • 系统级检查点 在核心层实现进程状态的保存和恢复 • 可以访问和利用系统中的各种信息 • 易于实现对应用的透明性 • 可移植性差 • 典型实现:BLCR、CRAK
国内外研究现状分析 • 用户级检查点 在进程的用户态上下文中对其状态进行保存和恢复 • 无法访问各种系统资源的内部管理信息 • 对应用的透明性差 • 可移植性相对较好 • 典型实现: • Condor、Libckpt (对应用透明) • Dome • 动态负载平衡 • 使用PVM管理进程和通信 • Calypso • 支持负载平衡 • 应用程序需使用扩展的C++编写(CSL)
国内外研究现状分析 • 检查点协议 • 协作式:需要多个进程协调记录检查点以获得一致的全局状态。 • 阻塞式与非阻塞式 • 独立式:每个进程独立决定检查点的时机。 • 多米诺效应 • 可能产生无用检查点文件 • 必须定期的垃圾回收 • 通信引导式:每个进程能够通过计算消息中捎带的控制信息来决定是否进行检查点,以避免多米诺现象。
国内外研究现状分析 • 消息日志协议:将进程检查点与消息日志相结合的卷回恢复机制 • 悲观日志:要求任何一个消息在影响到接收方进程的计算之前,其消息日志被记录到稳定存储中 • 乐观日志:首先将消息日志写入易失性存储,随后再送入稳定存储,并乐观地假设消息日志总会在故障发生之前到达稳定存储之中 • 因果日志:结合了乐观日志和悲观日志的两者的优点。但以复杂的恢复协议为代价。
研究目标 • 扩展性(核数大于4096) • 压力测试规模达到千个结点以上 • 对于MPI实现透明 • 不修改MPI实现 • 支持多种MPI实现 • 支持由应用语义定义的负载平衡 • 支持各类的负载平衡算法 • 检查点/恢复时自动数据迁移 • 灵活高效的检查点数据管理 • 检查点数据压缩/解压、自动垃圾回收、冗余存储等 • 简单易用的用户接口
关键技术 • 检查点时系统一致性算法 • 支持负载平衡的机制 • 负载平衡数据迁移传输协议 • 检查点数据存储管理
技术路线 • 用户级实现 • 对用户不透明 • 检查点时需由应用指定要保存的数据 • 阻塞式协作检查点 • 乐观日志
Node gctrl Node dcrd Node dcrd Node dcrd MPI process UI MPI process UI 技术路线 • 系统框架 • gctrl:全局控制器,管理dcrd,收集所有dcrd信息,协调dcrd之间的同步等。 • dcrd:结点守护进程,每个结点运行一个,负责收集本结点的MPI进程检查点相关信息,并向gctrl发送相关消息,以及接收gctrl发来的命令等。 • UI:提供给用户的检查点编程接口。
技术路线 • 高效的并行检查点协议 • 协作式检查点 • MPI进程向本结点dcrd注册 • MPI进程触发检查点请求 • UI库向本结点dcrd发送同步请求 • dcrd向gctrl发送全局同步请求 • gctrl广播系统处于一致性 • 阻塞式检查点 • 触发检查点后阻塞所有进程通信
技术路线 • 负载平衡 • 由应用程序定义分析负载平衡的算法 • 检查点/恢复时,根据所定义的算法将各MPI进程数据重新划分成平衡的数据分布 • 传输不平衡数据,使得应用重新处于负载均衡状态
技术路线 Node_0 MPI process(0) dcrd_0 dcrd_1 gctrl lb_pre sem_callback() dcrd_2 • 负载平衡数据传输协议 (1) load_balance (wait for load balance complete) (2) (3) (3) (4) (6) (5) (5) (6) (5) (6) (7) (8) (1): proc_lb_send (2): dcr_proc_inquire (3): dcr_proc_inquire (广播) (4): dcr_pi_res (5): dcr_data (6): dcr_dcrd_creq (7): dcr_gctrl_cok (广播) (8): dcr_ckpt_dump (广播)
技术路线 • 全局检查点过程 P0 P1 P2 checkpoint() checkpoint() checkpoint() barrier(全局一致性) 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier(全局一致性) 进程继续执行 进程继续执行 进程继续执行
技术路线 • 恢复机制 • 由应用触发恢复 • 动态组织恢复数据 • 分析进程数的变化 • 利用负载平衡算法重新划分数据 • 将负载平衡后的数据作为实际的恢复数据交给各进程 P0 P1 P2 restart() restart() restart() 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier(全局一致性) 恢复完成 恢复完成 恢复完成
技术路线 • 检查点数据存储管理 • 乐观日志协议 • 由两层实现共同组成 • 写频繁的无盘检查点(内存) • 相对较长间隔的稳定存储检查点(磁盘) • 检查点生成的文件格式 • 检查点数据文件合并存储 • 压缩解压备份数据的支持 • 垃圾回收
技术路线 • 故障自动检测 • 检查点系统自身的故障检测 • 应用程序运行的故障检测 • 检测到故障后通知应用,并自动停止所提供的服务
预期成果及创新之处 • 预期成果 • 用户级检查点系统 • 应用编程接口 • 大规模环境下用户级检查点高效同步机制 • 支持应用定义的负载平衡机制 • 集成检查点数据存储管理 • 自动化故障检测 • 创新之处 • 面向科学计算的检查点 • 支持应用定义的负载平衡机制
已有工作基础 • 调研了各类检查点实现技术 • 调研了大规模科学计算的编程模型特点
研究计划及预期进展 • 2011/03 • 用户接口实现 • 2011/04-2011/05 • 检查点同步机制的实现 • 2011/06-2011/07 • 负载平衡机制的实现 • 2011/08-2011/09 • 实现检查点数据存储管理与故障自动检测 • 2011/10-2011/12 • 测评与整体优化 • 2012/01-2012/04 • 论文
参考文献 • E. N. M. Elnozahy, L. Alvisi, Y.-M. Wang, and D. B. Johnson. A survey of rollback-recovery protocols in message passing systems. ACM Comput. Surv., 34(3):375–408, 2002. • J. S. Plank. An Overview of Checkpointing in Uniprocessor and Distributed Systems, Focusing on Implementation and Performance. Technical Report UT-CS-97-372, Dept. of Computer Science, University of Tennessee, July 1997. • J. Duell, P. Hargrove, and E. Roman. The design and implementation of Berkeley Lab’s linux checkpoint/restart. Technical Report LBNL-54941, Lawrence Berkeley National Lab, 2003. • A. Beguelin, E. Seligman, and P. Stephan, Application Level Fault Tolerance in Heterogeneous Networks of Workstations. J. Parallel and Distributed Computing, vol. 43, no. 2, pp. 147-155, June 1997. • E. Roman. A Survey of Checkpoint/Restart Implementations. Technical Report LBNL-54942, Lawrence Berkeley National Laboratory, July 2002. • P. H. Hargrove and J. C. Duell. Berkeley Lab Checkpoint/Restart (BLCR) for Linux Clusters. • W. Huang, G. Santhanaraman, H. -W. Jin, Q. Gao, and D. K. Panda. Design of High Performance MVAPICH2: MPI2 over InfiniBand. • Q. GAO, W. YU, W. HUANG, and D. K. PANDA. Application-Transparent Checkpoint/Restart for MPI Programs over InfiniBand. • J. Hursey, J. M. Squyres, T. I. Mattox, A. Lumsdaine. The Design and Implementation of Checkpoint/Restart Process Fault Tolerance for Open MPI. • S. Sankaran, J. M. Squyres, B. Barrett, and A. Lumsdaine. The LAM/MPI Checkpoint/Restart Framework: System-Initiated Checkpointing. • M. Chandy and L. Lamport, Distributed Snapshots: Determining Global States of Distributed Systems. ACM Trans. Computing Systems, vol. 3, no. 1, pp. 63-75, Aug. 1985. • Hua Zhong and Jason Nieh. CRAK: Linux Checkpoint / Restart As a Kernel Module. Technical Report CUCS-014-01. Department of Computer Science. Columbia University, November 2002. • J. S. Plank, M. Beck, G. Kingsley, and K. Li.. Libckpt: Transparent Checkpointing Under UNIX. Conference Proceedings, Usenix Winter 1995. Technical Conference, pages 213-223. January 1995. • A.Baratloo, P.Dasgupta, and Z.M.Kedem. CALYPSO: A novel software system for fault-tolerant parallel processing on distributed pltforms. In 4th IEEE International Symposium on High Performance Distributed Computing, August 1995. • J.S.Plank, M.Beck, G.Kingsley, and K.Li. Libckpt: Transparent checkpointing under unix. In Conference Proceedings, Usenix Winter 1995 Technical Conference, pages 213-223, January 1995. • G. Deconinck , J. Vounckx , R. Lauwereins , J. A. Peperstraete.A User-Triggered Checkpointing Library for Computation-Intensive Applications. In Proceedings of 7th IASTED-ISMM International Conference On Parallel and Distributed Computing and Systems, 1995.