1 / 44

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

硕士开题报告. 面向科学计算的 用户级检查点系统. 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011 年 3 月 15 日. 大纲. 研究背景与意义 国内外研究现状分析 研究目标和内容 关键问题及拟解决的方法 预期研究成果及创新之处 已有工作基础 研究计划及预期进展 参考文献. 大纲. 研究背景与意义 国内外研究现状分析 研究目标、内容 关键问题及拟解决的方法 预期研究成果及创新之处 已有工作基础 研究计划及预期进展 参考文献. 研究背景与意义. 科学计算离不开 HPC

palmer-park
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. 硕士开题报告 面向科学计算的用户级检查点系统 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011年3月15日

  2. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标和内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  3. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  4. 研究背景与意义 • 科学计算离不开HPC • 对于绝大多数具有挑战性的科学问题,超级计算机是获得新认识和解决问题的关键。 • 科学计算需要高可扩展、可不断升级的超级计算机系统来帮助完成实际的大规模计算。 • 科学模拟需要更强的并行计算能力,才能解决更大的问题、获得更精确的结果。诸如制造更好的药物,宇宙大爆炸后元素如何形成等问题需要上百万次的迭代过程,需要强大的并行计算能力。 • 迈入千万亿次科学计算时代

  5. 研究背景与意义 • 实例1 • Jaguar(2010.11 Top500 Rank2) • 模拟从地表产生的二氧化碳在大气中聚集的过程 • 实例2 • Jaguar(2010.11 Top500 Rank2) • 核聚变 • 模拟电波向里传播加热聚变等离子

  6. 研究背景与意义 • 实例3 • Franklin(2010.11 Top500 Rank26) • 32,000 processors • 模拟超新星

  7. 研究背景与意义 • 千万亿次科学计算的特点 • 计算问题的规模巨大 • 以20%的并行效率估计,千万亿次级应用的并行度要达到20万以上的计算核 • 计算机体系结构非常复杂 • 包含上万个结点,每个结点包含多个处理器,每个处理器包含多核或众核 • 千万亿次超级计算机系统平均无故障运行时间将缩短到以几小时计 • 只有容错的程序才能完成计算 • 需要高效的动态负载平衡支持 • 自适应网格方法(Adaptive Mesh Refinement)

  8. 研究背景与意义 • 千万亿次科学计算对检查点技术的挑战 • 高可扩展性 • 上万结点,十万甚至几十万的计算核 • 超多计算进程并行检查点 • 系统全局一致性 • 支持负载平衡的并行架构 • 检查点的同时进行高效动态负载平衡 • 海量检查点数据管理 • 海量数据周期性的写操作与突发性的读操作 • 海量数据在存储系统中的组织

  9. 研究背景与意义 • 用户级实现的优势 • 系统级实现高度依赖硬件平台和操作系统 • 可在不同的平台重启应用执行 • 需要保存的数据明显少于系统级实现 • 应用级检查点数据几兆字节(megabytes) • 完整的系统级检查点数据几万亿字节(terabytes) (IBM Blue Gene,蛋白质折叠应用) • 系统级无法满足负载平衡数据迁移的需求

  10. 研究背景与意义 • 目前已有许多检查点容错系统,但是这些系统主要针对通用的计算程序,缺乏专门对大规模科学计算的高效容错支持 • 提高曙光6000在大规模科学计算应用方面的容错性能

  11. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  12. 国内外研究现状分析 • Cornell Checkpointing Compiler(C3) • 面向共享内存程序,OpenMP • 半自动化用户级检查点系统 • 程序调用函数potentialCheckpoint() • 编译器植自动入保存和重启进程状态的代码

  13. 国内外研究现状分析 • C3检查点协议 • 阻塞、协作式 • 每个线程调用一次barrier • 线程保存各自的状态,线程0还要保存系统共享的状态 • 每个线程再调用一次barrier

  14. 国内外研究现状分析 • CHK-LIB • 支持用户定义的检查点(user-defined checkpointing)的通信库 • 不保存系统变量:进程栈、寄存器及其他与硬件或操作系统相关的信息 • 简单的函数库接口 • int CHK_Pack_chkp(void *ptr,int size); • int CHK_Restart(void); • int CHK_Checkpoint(void); • 使用CHK_Pack_chkp()指明需要保存的关键数据 • 调用CHK_Checkpoint()保存检查点数据,由应用保证检查点时系统一致性 • 重启时,从main()开始从头执行,在开始计算之前调用CHK_Restart()读取检查点数据

  15. 国内外研究现状分析 • CHK-LIB • 系统级检查点(SLC)与CHK-LIB(UDC)检查点开销对比

  16. 国内外研究现状分析 • Libckpt • 用户级检查点 • 增量检查点、写时复制检查点 • 用户定制的检查点 • 可定制要保存的检查点内容 • exclude_bytes(char *addr, int size, int usage) • 程序指定可进行检查点的位置(同步检查点) • checkpoint_here()

  17. 国内外研究现状分析 • Zoltan • 针对动态模拟类应用、并行分割、负载平衡、数据管理 • 面向数据对象、对于具体的数据结构中立 • 提供多类的并行动态分割算法 • 支持重新分割后数据自动迁移 • 采用分布式目录的方式管理数据信息

  18. 国内外研究现状分析 • Zoltan整体流程

  19. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  20. 研究目标 • 扩展性 • 压力测试规模达到6000结点以上 • 支持由应用语义定义的负载平衡 • 支持各类的负载平衡算法 • 检查点/重启时自动数据迁移 • 高效检查点数据存储 • 保证海量检查点数据的可靠存储 • 减少检查点文件大小,减少IO带宽对检查点性能的影响 • 检查点数据读写对应用性能的影响控制在1%以内 • 自动化的检查点 • 监测应用运行情况,当应用遇故障时自动重启

  21. 研究内容 • 超多进程并行执行检查点 • 支持负载平衡的机制 • 检查点/重启时自动迁移数据 • 检查点数据存储管理 • 快速高效的IO处理 • 海量文件与数据的管理 • 自动化检查点机制 • 应用故障的检测 • 重启恢复机制

  22. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  23. 关键问题及拟解决的方法 • 超多计算进程并行执行检查点 • 触发检查点的时机 • 尽量减少对科学计算编程模式的影响 • 需要保存的系统状态最小 • 科学计算特点:采用迭代法求解大型稀疏线性方程组 • 检查点对象: • 仅保存用户定义的数据 • 不保存进程状态

  24. P1 Iteration i Iteration i+1 P2 Iteration i Iteration i+1 Checkpoint m Checkpoint m+1 Checkpoint m+2 关键问题及拟解决的方法 • 超多计算进程并行执行检查点 • P1和P2在仅在同一轮迭代计算过程中有互发消息,各进程在不同迭代之间没有消息 • 每轮迭代计算的末尾,系统处于强一致性,各进程可独立进行检查点

  25. 关键问题及拟解决的方法 • 支持负载平衡的机制 • 针对科学计算的特点 • 面向数据的负载平衡 • 根据应用场景的不同,算法由应用定义 • 应用注册用于分析数据的算法 • 检查点/重启时,根据所定义的算法将各MPI进程数据重新划分成平衡的数据分布 • 传输不平衡数据,使得应用重新处于负载均衡状态

  26. 关键问题及拟解决的方法 • 负载平衡时机(检查点) • 调用检查点之后 • 写检查点数据之前 P0 P1 P2 checkpoint() checkpoint() checkpoint() barrier() 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier() 进程继续执行 进程继续执行 进程继续执行

  27. 关键问题及拟解决的方法 • 负载平衡时机(重启) • 由应用触发重启 • 利用负载平衡算法重新划分数据 • 将负载平衡后的数据作为实际的重启数据交给各进程 P0 P1 P2 restart() restart() restart() 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier() 进程继续执行 进程继续执行 进程继续执行

  28. 关键问题及拟解决的方法 • 检查点数据存储管理 • 海量的检查点数据压缩/解压缩 • 对检查点数据进行快速高效的压缩,减少检查点文件大小,降低IO带宽对检查点性能的影响 • 检查点对压缩算法的要求 S为检查点数据大小、C为压缩速度、f为压缩率、D为磁盘写速度 • 需要综合考虑压缩率、压缩速度和磁盘写速度

  29. 关键问题及拟解决的方法 • 检查点数据存储管理 • 几个压缩算法的对比 • Snappy的目标是足够快速。在许多测试中,Snappy通常比其他同类算法(如LZO, LZF, FastLZ, QuickLZ等等)要快,且实现同比的压缩率。

  30. 关键问题及拟解决的方法 • 检查点数据存储管理 • 使用snappy对检查点数据进行压缩/解压缩

  31. 关键问题及拟解决的方法 • 检查点整体流程 检查点开始 0号MPI进程 保存本次检查点信息 (版本信息、 总MPI进程数、 第n次检查点等) 压缩检查点数据 (snappy) 是否有负载平衡? 是 子进程退出 否 负载平衡 数据处理 保存压缩后的数据 调用fork() 父进程返回继续执行计算 子进程保存检查点数据 检查点结束

  32. 关键问题及拟解决的方法 • 自动化检查点 • 应用运行过程中可能遇到的故障类型 • 应用故障:应用进程异常退出 • 系统故障:结点遇到操作系统故障 • 整个系统一个管理守护进程(gctrl),每个结点一个本地守护进程(dcrd) • gctrl定期向所有的dcrd发送查询消息 • dcrd收到查询消息后,向本结点应用进程发送NULL信号探测目标进程状态,然后回复gctrl本结点是否发生应用故障 • gctrl认为在指定时间内没有收到回复的结点发生系统故障

  33. 关键问题及拟解决的方法 • 自动化检查点(故障检测流程图) 管理守护进程 (gctrl) 本地守护进程 (dcrd) 收到查询命令 向所有dcrd广播 查询命令 所有相关进程是否正常? 否 等待一定时间 是 是否收到所有dcrd的正常回复? 是 回复gctrl应用正常 回复gctrl应用故障 否 自动重启应用 状态查询结束

  34. 关键问题及拟解决的方法 • 自动化检查点 • 自动化重启应用 • 如何获取重启参数? • 用户预先定义重启命令和参数 • 有结点故障时,如何顶替故障结点? • 系统备有后备结点,系统可用结点不足时,向系统加入备用结点 • 检查点文件迁移问题 • 重启时,进程可能会迁移 • 检查点文件系统提供透明的检查点文件迁移

  35. 关键问题及拟解决的方法 • 自动化检查点(自动重启流程图) 管理守护进程 (gctrl) 本地守护进程 (dcrd) 通知所有dcrd终止相关进程 收到终止应用请求 注销应用本次执行 Kill所有相关进程 备用结点替换系统故障结点 结点内注销应用本次运行 回复gctrl应用终止完成 以用户预定义的参数重启应用 应用终止结束 重启结束

  36. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  37. 预期成果及创新之处 • 预期成果 • 用户级检查点系统 • 应用编程接口 • 支持应用定义的负载平衡机制 • 集成检查点数据存储管理 • 自动化的检查点机制 • 创新之处 • 以数据为中心的检查点 • 面向科学计算的检查点 • 支持应用定义的负载平衡机制

  38. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  39. 已有工作基础 • 调研了各类检查点实现技术 • 调研了大规模科学计算的编程模型特点 • 已完成系统的详细设计

  40. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  41. 研究计划及预期进展 • 2011/05-2011/06 • 用户接口实现、检查点同步机制的实现 • 2011/07 • 负载平衡机制的实现 • 2011/08-2011/10 • 实现检查点数据存储管理与故障自动检测 • 2011/11-2012/01 • 测评与整体优化 • 2012/01-2012/04 • 论文

  42. 大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献

  43. 参考文献 • http://www.top500.org • http://www.scientificcomputing.com • Bronevetsky, G., et al., Application-level checkpointing for shared memory programs, In Conference on Architectural Support for ProgrammingLanguages and Operating Sys-tems (ASPLOS). 2004:Boston, MA, USA. p. 235-247. • 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. • 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. • 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. • G. Deconinck and R. Lauwereins. User-Triggered Checkpointing: System-Independent and Scalable Application Recovery. In Proceedings of 2nd IEEE Symposium on Computers and Communications (ISCC97), pages 418-423, Alexandria,Egypt, July 1997. • L.M. Silva, J.G. Silva, "System-Level Versus User-Defined Checkpointing," srds, pp.68, The 17th IEEE Symposium on Reliable Distributed Systems, 1998. • Vadhiyar, S. and Dongarra, J. SRS - A Framework for Developing Malleable and Migratable Parallel Applications for Distributed Systems. Parallel Processing Letters, Vol. 13, number 2, pp. 291-312, June 2003. • Vadhiyar, S. and Dongarra, J. Performance Oriented Migration Framework for the Grid. Proceedings of The 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2003), pp 130-137, May 2003, Tokyo, Japan. • L.M. Silva, J.G. Silva, "Global Checkpointing for Distributed Programs", Proc. 11th Symp. Reliable Distributed Systems, Houston, TX, Oct. 1992, pp. 155-162

  44. 谢谢!

More Related