450 likes | 578 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
国内外研究现状分析 • Dome(Distributed object migration environment) • 基于PVM,SPMD • 不透明、用户级检查点 • 提供两个类:dVector和dScalar
国内外研究现状分析 • Dome • 根据运行时各结点的计算量,动态负载平衡 • 初始时将数据平均分到每个处理器 • 记录每个处理器处理计算的时间 • 负载平衡阶段:同步Dome程序,对比各处理器用于计算的时间 • 基于比较的结果重新分配数据,数据只传输给相邻处理器 • 全局:依据所有处理器的计算时间做出决策 • 本地:相邻处理器之间交互计算时间信息
国内外研究现状分析 • Libckpt • 用户级检查点 • 增量检查点、写时复制检查点 • 用户定制的检查点 • 可定制要保存的检查点内容 • exclude_bytes(char *addr, int size, int usage) • 程序指定可进行检查点的位置(同步检查点) • checkpoint_here()
国内外研究现状分析 • Zoltan • 针对动态模拟类应用、并行分割、负载平衡、数据管理 • 面向数据对象、对于具体的数据结构中立 • 提供多类的并行动态分割算法 • 支持重新分割后数据自动迁移 • 采用分布式目录的方式管理数据信息
国内外研究现状分析 • Zoltan整体流程
国内外研究现状分析 • 存储时间开销分析(Buffer)
国内外研究现状分析 • 存储时间开销分析(Copy-on-write)
国内外研究现状分析 • 存储时间开销分析(Fork)
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究目标 • 扩展性 • 压力测试规模达到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带宽影响比较明显,减少写入存储系统的数据量能有效提升检查点性能 • 不同进程之间的检查点数据存在冗余 • 以FEM应用为例,各进程之间至少有15%的数据相同 • 科学模拟应用在运行一段时间后,数据趋于收敛,进程之间的检查点数据冗余更为突出 • 对去冗余之后的检查点数据进行压缩,减少检查点文件大小,降低IO带宽对检查点性能的影响 • 以FEM为例,检查点数据压缩比在85%左右
关键问题及拟解决的方法 • 检查点数据存储管理 • 大量进程在同一时间段内并发的写数据 • 先将数据写入内存 • 相对较长间隔后台存入稳定存储 • 写检查点数据与应用的运行并行执行 • 检查点数据的垃圾回收 • 定期自动回收,删除过期的检查点文件 • 使用专为检查点设计的文件系统 • 3模冗余存储 • 检查点文件的透明迁移等
关键问题及拟解决的方法 • 自动化检查点 • 由于科学计算应用通常要运行较长时间(几天、甚至几个月)、且运行规模较大(上千个结点),在一次完整的执行过程中不可避免的多次遇到故障,多次从检查点文件中重启继续向前执行。 • 基于这种情况,能在应用运行过程中发生故障时自动重启应用而无需人为干预的自动化检查点机制显得尤为重要。
关键问题及拟解决的方法 • 自动化检查点 • 关键问题 • 如何监测应用运行过程中的故障? • 应用故障:应用进程异常退出 • 系统故障:结点遇到操作系统故障 • 如何自动化的重启应用? • 如何获取重启参数? • 在哪个结点上执行重启命令? • 有结点故障时,如何顶替故障结点? • 检查点文件迁移问题
关键问题及拟解决的方法 • 自动化检查点 • 拟解决的方法 • 故障检测 • 应用故障:检查点系统定期向应用结点发送查询命令,结点收到命令后,返回本结点上进程状态 • 系统故障: • 自动重启 • 用户预先定义重启命令和参数 • 定义选择执行重启命令结点算法(如首选rank号为0的进程所在结点) • 系统备有后备结点,系统可用结点不足时,向系统加入备用结点 • 检查点文件系统提供透明的检查点文件迁移(分布式文件系统)
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
预期成果及创新之处 • 预期成果 • 用户级检查点系统 • 应用编程接口 • 支持应用定义的负载平衡机制 • 集成检查点数据存储管理 • 自动化的检查点机制 • 创新之处 • 以数据为中心的检查点 • 面向科学计算的检查点 • 支持应用定义的负载平衡机制
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
已有工作基础 • 调研了各类检查点实现技术 • 调研了大规模科学计算的编程模型特点 • 已完成系统的详细设计
大纲 • 研究背景与意义 • 国内外研究现状分析 • 研究目标、内容 • 关键问题及拟解决的方法 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展 • 参考文献
研究计划及预期进展 • 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. • 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. • 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.