440 likes | 565 Views
硕士开题报告. 面向科学计算的 用户级检查点系统. 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011 年 3 月 15 日. 大纲. 研究背景与意义 国内外研究现状分析 研究目标和内容 关键问题及拟解决的方法 预期研究成果及创新之处 已有工作基础 研究计划及预期进展 参考文献. 大纲. 研究背景与意义 国内外研究现状分析 研究目标、内容 关键问题及拟解决的方法 预期研究成果及创新之处 已有工作基础 研究计划及预期进展 参考文献. 研究背景与意义. 科学计算离不开 HPC
E N D
硕士开题报告 面向科学计算的用户级检查点系统 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011年3月15日
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标和内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究背景与意义 • 科学计算离不开HPC • 对于绝大多数具有挑战性的科学问题,超级计算机是获得新认识和解决问题的关键。 • 科学计算需要高可扩展、可不断升级的超级计算机系统来帮助完成实际的大规模计算。 • 科学模拟需要更强的并行计算能力,才能解决更大的问题、获得更精确的结果。诸如制造更好的药物,宇宙大爆炸后元素如何形成等问题需要上百万次的迭代过程,需要强大的并行计算能力。 • 迈入千万亿次科学计算时代
研究背景与意义 • 实例1 • Jaguar(2010.11 Top500 Rank2) • 模拟从地表产生的二氧化碳在大气中聚集的过程 • 实例2 • Jaguar(2010.11 Top500 Rank2) • 核聚变 • 模拟电波向里传播加热聚变等离子
研究背景与意义 • 实例3 • Franklin(2010.11 Top500 Rank26) • 32,000 processors • 模拟超新星
研究背景与意义 • 千万亿次科学计算的特点 • 计算问题的规模巨大 • 以20%的并行效率估计,千万亿次级应用的并行度要达到20万以上的计算核 • 计算机体系结构非常复杂 • 包含上万个结点,每个结点包含多个处理器,每个处理器包含多核或众核 • 千万亿次超级计算机系统平均无故障运行时间将缩短到以几小时计 • 只有容错的程序才能完成计算 • 需要高效的动态负载平衡支持 • 自适应网格方法(Adaptive Mesh Refinement)
研究背景与意义 • 千万亿次科学计算对检查点技术的挑战 • 高可扩展性 • 上万结点,十万甚至几十万的计算核 • 超多计算进程并行检查点 • 系统全局一致性 • 支持负载平衡的并行架构 • 检查点的同时进行高效动态负载平衡 • 海量检查点数据管理 • 海量数据周期性的写操作与突发性的读操作 • 海量数据在存储系统中的组织
研究背景与意义 • 用户级实现的优势 • 系统级实现高度依赖硬件平台和操作系统 • 可在不同的平台重启应用执行 • 需要保存的数据明显少于系统级实现 • 应用级检查点数据几兆字节(megabytes) • 完整的系统级检查点数据几万亿字节(terabytes) (IBM Blue Gene,蛋白质折叠应用) • 系统级无法满足负载平衡数据迁移的需求
研究背景与意义 • 目前已有许多检查点容错系统,但是这些系统主要针对通用的计算程序,缺乏专门对大规模科学计算的高效容错支持 • 提高曙光6000在大规模科学计算应用方面的容错性能
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
国内外研究现状分析 • Cornell Checkpointing Compiler(C3) • 面向共享内存程序,OpenMP • 半自动化用户级检查点系统 • 程序调用函数potentialCheckpoint() • 编译器植自动入保存和重启进程状态的代码
国内外研究现状分析 • C3检查点协议 • 阻塞、协作式 • 每个线程调用一次barrier • 线程保存各自的状态,线程0还要保存系统共享的状态 • 每个线程再调用一次barrier
国内外研究现状分析 • 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()读取检查点数据
国内外研究现状分析 • CHK-LIB • 系统级检查点(SLC)与CHK-LIB(UDC)检查点开销对比
国内外研究现状分析 • Libckpt • 用户级检查点 • 增量检查点、写时复制检查点 • 用户定制的检查点 • 可定制要保存的检查点内容 • exclude_bytes(char *addr, int size, int usage) • 程序指定可进行检查点的位置(同步检查点) • checkpoint_here()
国内外研究现状分析 • Zoltan • 针对动态模拟类应用、并行分割、负载平衡、数据管理 • 面向数据对象、对于具体的数据结构中立 • 提供多类的并行动态分割算法 • 支持重新分割后数据自动迁移 • 采用分布式目录的方式管理数据信息
国内外研究现状分析 • Zoltan整体流程
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究目标 • 扩展性 • 压力测试规模达到6000结点以上 • 支持由应用语义定义的负载平衡 • 支持各类的负载平衡算法 • 检查点/重启时自动数据迁移 • 高效检查点数据存储 • 保证海量检查点数据的可靠存储 • 减少检查点文件大小,减少IO带宽对检查点性能的影响 • 检查点数据读写对应用性能的影响控制在1%以内 • 自动化的检查点 • 监测应用运行情况,当应用遇故障时自动重启
研究内容 • 超多进程并行执行检查点 • 支持负载平衡的机制 • 检查点/重启时自动迁移数据 • 检查点数据存储管理 • 快速高效的IO处理 • 海量文件与数据的管理 • 自动化检查点机制 • 应用故障的检测 • 重启恢复机制
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
关键问题及拟解决的方法 • 超多计算进程并行执行检查点 • 触发检查点的时机 • 尽量减少对科学计算编程模式的影响 • 需要保存的系统状态最小 • 科学计算特点:采用迭代法求解大型稀疏线性方程组 • 检查点对象: • 仅保存用户定义的数据 • 不保存进程状态
P1 Iteration i Iteration i+1 P2 Iteration i Iteration i+1 Checkpoint m Checkpoint m+1 Checkpoint m+2 关键问题及拟解决的方法 • 超多计算进程并行执行检查点 • P1和P2仅在同一轮迭代计算过程中有互发消息,各进程在不同迭代之间没有消息 • 每轮迭代计算的末尾,系统处于强一致性,各进程可独立进行检查点
关键问题及拟解决的方法 • 支持负载平衡的机制 • 针对科学计算的特点 • 面向数据的负载平衡 • 根据应用场景的不同,算法由应用定义 • 应用注册用于分析数据的算法 • 检查点/重启时,根据所定义的算法将各MPI进程数据重新划分成平衡的数据分布 • 传输不平衡数据,使得应用重新处于负载均衡状态
关键问题及拟解决的方法 • 负载平衡时机(检查点) • 调用检查点之后 • 写检查点数据之前 P0 P1 P2 checkpoint() checkpoint() checkpoint() barrier() 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier() 进程继续执行 进程继续执行 进程继续执行
关键问题及拟解决的方法 • 负载平衡时机(重启) • 由应用触发重启 • 利用负载平衡算法重新划分数据 • 将负载平衡后的数据作为实际的重启数据交给各进程 P0 P1 P2 restart() restart() restart() 负载平衡分析 负载平衡分析 负载平衡分析 负载平衡 数据传输 负载平衡 数据传输 负载平衡 数据传输 barrier() 进程继续执行 进程继续执行 进程继续执行
关键问题及拟解决的方法 • 检查点数据存储管理 • 海量的检查点数据压缩/解压缩 • 对检查点数据进行快速高效的压缩,减少检查点文件大小,降低IO带宽对检查点性能的影响 • 检查点对压缩算法的要求 S为检查点数据大小、C为压缩速度、f为压缩率、D为磁盘写速度 • 需要综合考虑压缩率、压缩速度和磁盘写速度
关键问题及拟解决的方法 • 检查点数据存储管理 • 几个压缩算法的对比 • Snappy的目标是足够快速。在许多测试中,Snappy通常比其他同类算法(如LZO, LZF, FastLZ, QuickLZ等等)要快,且实现同比的压缩率。
关键问题及拟解决的方法 • 检查点数据存储管理 • 使用snappy对检查点数据进行压缩
关键问题及拟解决的方法 • 检查点整体流程 检查点开始 0号MPI进程 保存本次检查点信息 (版本信息、 总MPI进程数、 第n次检查点等) 压缩检查点数据 (snappy) 是否有负载平衡? 是 子进程退出 否 负载平衡 数据处理 保存压缩后的数据 调用fork() 父进程返回继续执行计算 子进程保存检查点数据 检查点结束
关键问题及拟解决的方法 • 自动化检查点 • 应用运行过程中可能遇到的故障类型 • 应用故障:应用进程异常退出 • 系统故障:结点遇到操作系统故障 • 整个系统一个管理守护进程(gctrl),每个结点一个本地守护进程(dcrd) • gctrl定期向所有的dcrd发送查询消息 • dcrd收到查询消息后,向本结点应用进程发送NULL信号探测目标进程状态,然后回复gctrl本结点是否发生应用故障 • gctrl认为在指定时间内没有收到回复的结点发生系统故障
关键问题及拟解决的方法 • 自动化检查点(故障检测流程图) 管理守护进程 (gctrl) 本地守护进程 (dcrd) 收到查询命令 向所有dcrd广播 查询命令 所有相关进程是否正常? 否 等待一定时间 是 是否收到所有dcrd的正常回复? 是 回复gctrl应用正常 回复gctrl应用故障 否 自动重启应用 状态查询结束
关键问题及拟解决的方法 • 自动化检查点 • 自动化重启应用 • 如何获取重启参数? • 用户预先定义重启命令和参数 • 有结点故障时,如何顶替故障结点? • 系统备有后备结点,系统可用结点不足时,向系统加入备用结点 • 检查点文件迁移问题 • 重启时,进程可能会迁移 • 检查点文件系统提供透明的检查点文件迁移
关键问题及拟解决的方法 • 自动化检查点(自动重启流程图) 管理守护进程 (gctrl) 本地守护进程 (dcrd) 通知所有dcrd终止相关进程 收到终止应用请求 注销应用本次执行 Kill所有相关进程 备用结点替换系统故障结点 结点内注销应用本次运行 回复gctrl应用终止完成 以用户预定义的参数重启应用 应用终止结束 重启结束
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
预期成果及创新之处 • 预期成果 • 用户级检查点系统 • 应用编程接口 • 支持应用定义的负载平衡机制 • 集成检查点数据存储管理 • 自动化的检查点机制 • 创新之处 • 以数据为中心的检查点 • 面向科学计算的检查点 • 支持应用定义的负载平衡机制
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
已有工作基础 • 调研了各类检查点实现技术 • 调研了大规模科学计算的编程模型特点 • 已完成系统的详细设计
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究计划及预期进展 • 2011/05-2011/06 • 用户接口实现、检查点同步机制的实现 • 2011/07 • 负载平衡机制的实现 • 2011/08-2011/10 • 实现检查点数据存储管理与故障自动检测 • 2011/11-2012/01 • 测评与整体优化 • 2012/01-2012/04 • 论文
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
参考文献 • 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