硕士开题报告
This presentation is the property of its rightful owner.
Sponsored Links
1 / 44

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


  • 37 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


2011315

硕士开题报告

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

学生:张福玺

导师:赵晓芳

高性能中心操作系统组

2011年3月15日


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标和内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

研究背景与意义

  • 科学计算离不开HPC

    • 对于绝大多数具有挑战性的科学问题,超级计算机是获得新认识和解决问题的关键。

    • 科学计算需要高可扩展、可不断升级的超级计算机系统来帮助完成实际的大规模计算。

    • 科学模拟需要更强的并行计算能力,才能解决更大的问题、获得更精确的结果。诸如制造更好的药物,宇宙大爆炸后元素如何形成等问题需要上百万次的迭代过程,需要强大的并行计算能力。

    • 迈入千万亿次科学计算时代


2011315

研究背景与意义

  • 实例1

    • Jaguar(2010.11 Top500 Rank2)

    • 模拟从地表产生的二氧化碳在大气中聚集的过程

  • 实例2

    • Jaguar(2010.11 Top500 Rank2)

    • 核聚变

    • 模拟电波向里传播加热聚变等离子


2011315

研究背景与意义

  • 实例3

    • Franklin(2010.11 Top500 Rank26)

    • 32,000 processors

    • 模拟超新星


2011315

研究背景与意义

  • 千万亿次科学计算的特点

    • 计算问题的规模巨大

      • 以20%的并行效率估计,千万亿次级应用的并行度要达到20万以上的计算核

    • 计算机体系结构非常复杂

      • 包含上万个结点,每个结点包含多个处理器,每个处理器包含多核或众核

      • 千万亿次超级计算机系统平均无故障运行时间将缩短到以几小时计

      • 只有容错的程序才能完成计算

    • 需要高效的动态负载平衡支持

      • 自适应网格方法(Adaptive Mesh Refinement)


2011315

研究背景与意义

  • 千万亿次科学计算对检查点技术的挑战

    • 高可扩展性

      • 上万结点,十万甚至几十万的计算核

    • 超多计算进程并行检查点

      • 系统全局一致性

    • 支持负载平衡的并行架构

      • 检查点的同时进行高效动态负载平衡

    • 海量检查点数据管理

      • 海量数据周期性的写操作与突发性的读操作

      • 海量数据在存储系统中的组织


2011315

研究背景与意义

  • 用户级实现的优势

    • 系统级实现高度依赖硬件平台和操作系统

    • 可在不同的平台重启应用执行

    • 需要保存的数据明显少于系统级实现

      • 应用级检查点数据几兆字节(megabytes)

      • 完整的系统级检查点数据几万亿字节(terabytes)

        (IBM Blue Gene,蛋白质折叠应用)

    • 系统级无法满足负载平衡数据迁移的需求


2011315

研究背景与意义

  • 目前已有许多检查点容错系统,但是这些系统主要针对通用的计算程序,缺乏专门对大规模科学计算的高效容错支持

  • 提高曙光6000在大规模科学计算应用方面的容错性能


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

国内外研究现状分析

  • Cornell Checkpointing Compiler(C3)

    • 面向共享内存程序,OpenMP

    • 半自动化用户级检查点系统

    • 程序调用函数potentialCheckpoint()

    • 编译器植自动入保存和重启进程状态的代码


2011315

国内外研究现状分析

  • C3检查点协议

    • 阻塞、协作式

    • 每个线程调用一次barrier

    • 线程保存各自的状态,线程0还要保存系统共享的状态

    • 每个线程再调用一次barrier


2011315

国内外研究现状分析

  • 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()读取检查点数据


2011315

国内外研究现状分析

  • CHK-LIB

    • 系统级检查点(SLC)与CHK-LIB(UDC)检查点开销对比


2011315

国内外研究现状分析

  • Libckpt

    • 用户级检查点

    • 增量检查点、写时复制检查点

    • 用户定制的检查点

      • 可定制要保存的检查点内容

        • exclude_bytes(char *addr, int size, int usage)

      • 程序指定可进行检查点的位置(同步检查点)

        • checkpoint_here()


2011315

国内外研究现状分析

  • Zoltan

    • 针对动态模拟类应用、并行分割、负载平衡、数据管理

    • 面向数据对象、对于具体的数据结构中立

    • 提供多类的并行动态分割算法

    • 支持重新分割后数据自动迁移

    • 采用分布式目录的方式管理数据信息


2011315

国内外研究现状分析

  • Zoltan整体流程


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

研究目标

  • 扩展性

    • 压力测试规模达到6000结点以上

  • 支持由应用语义定义的负载平衡

    • 支持各类的负载平衡算法

    • 检查点/重启时自动数据迁移

  • 高效检查点数据存储

    • 保证海量检查点数据的可靠存储

    • 减少检查点文件大小,减少IO带宽对检查点性能的影响

    • 检查点数据读写对应用性能的影响控制在1%以内

  • 自动化的检查点

    • 监测应用运行情况,当应用遇故障时自动重启


2011315

研究内容

  • 超多进程并行执行检查点

  • 支持负载平衡的机制

    • 检查点/重启时自动迁移数据

  • 检查点数据存储管理

    • 快速高效的IO处理

    • 海量文件与数据的管理

  • 自动化检查点机制

    • 应用故障的检测

    • 重启恢复机制


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

关键问题及拟解决的方法

  • 超多计算进程并行执行检查点

    • 触发检查点的时机

      • 尽量减少对科学计算编程模式的影响

      • 需要保存的系统状态最小

      • 科学计算特点:采用迭代法求解大型稀疏线性方程组

    • 检查点对象:

      • 仅保存用户定义的数据

      • 不保存进程状态


2011315

P1

Iteration i

Iteration i+1

P2

Iteration i

Iteration i+1

Checkpoint m

Checkpoint m+1

Checkpoint m+2

关键问题及拟解决的方法

  • 超多计算进程并行执行检查点

    • P1和P2仅在同一轮迭代计算过程中有互发消息,各进程在不同迭代之间没有消息

    • 每轮迭代计算的末尾,系统处于强一致性,各进程可独立进行检查点


2011315

关键问题及拟解决的方法

  • 支持负载平衡的机制

    • 针对科学计算的特点

      • 面向数据的负载平衡

    • 根据应用场景的不同,算法由应用定义

      • 应用注册用于分析数据的算法

    • 检查点/重启时,根据所定义的算法将各MPI进程数据重新划分成平衡的数据分布

    • 传输不平衡数据,使得应用重新处于负载均衡状态


2011315

关键问题及拟解决的方法

  • 负载平衡时机(检查点)

    • 调用检查点之后

    • 写检查点数据之前

P0

P1

P2

checkpoint()

checkpoint()

checkpoint()

barrier()

负载平衡分析

负载平衡分析

负载平衡分析

负载平衡

数据传输

负载平衡

数据传输

负载平衡

数据传输

barrier()

进程继续执行

进程继续执行

进程继续执行


2011315

关键问题及拟解决的方法

  • 负载平衡时机(重启)

    • 由应用触发重启

    • 利用负载平衡算法重新划分数据

    • 将负载平衡后的数据作为实际的重启数据交给各进程

P0

P1

P2

restart()

restart()

restart()

负载平衡分析

负载平衡分析

负载平衡分析

负载平衡

数据传输

负载平衡

数据传输

负载平衡

数据传输

barrier()

进程继续执行

进程继续执行

进程继续执行


2011315

关键问题及拟解决的方法

  • 检查点数据存储管理

    • 海量的检查点数据压缩/解压缩

      • 对检查点数据进行快速高效的压缩,减少检查点文件大小,降低IO带宽对检查点性能的影响

      • 检查点对压缩算法的要求

        S为检查点数据大小、C为压缩速度、f为压缩率、D为磁盘写速度

      • 需要综合考虑压缩率、压缩速度和磁盘写速度


2011315

关键问题及拟解决的方法

  • 检查点数据存储管理

    • 几个压缩算法的对比

    • Snappy的目标是足够快速。在许多测试中,Snappy通常比其他同类算法(如LZO, LZF, FastLZ, QuickLZ等等)要快,且实现同比的压缩率。


2011315

关键问题及拟解决的方法

  • 检查点数据存储管理

    • 使用snappy对检查点数据进行压缩


2011315

关键问题及拟解决的方法

  • 检查点整体流程

检查点开始

0号MPI进程

保存本次检查点信息

(版本信息、

总MPI进程数、

第n次检查点等)

压缩检查点数据

(snappy)

是否有负载平衡?

子进程退出

负载平衡

数据处理

保存压缩后的数据

调用fork()

父进程返回继续执行计算

子进程保存检查点数据

检查点结束


2011315

关键问题及拟解决的方法

  • 自动化检查点

    • 应用运行过程中可能遇到的故障类型

      • 应用故障:应用进程异常退出

      • 系统故障:结点遇到操作系统故障

    • 整个系统一个管理守护进程(gctrl),每个结点一个本地守护进程(dcrd)

      • gctrl定期向所有的dcrd发送查询消息

      • dcrd收到查询消息后,向本结点应用进程发送NULL信号探测目标进程状态,然后回复gctrl本结点是否发生应用故障

      • gctrl认为在指定时间内没有收到回复的结点发生系统故障


2011315

关键问题及拟解决的方法

  • 自动化检查点(故障检测流程图)

管理守护进程

(gctrl)

本地守护进程

(dcrd)

收到查询命令

向所有dcrd广播

查询命令

所有相关进程是否正常?

等待一定时间

是否收到所有dcrd的正常回复?

回复gctrl应用正常

回复gctrl应用故障

自动重启应用

状态查询结束


2011315

关键问题及拟解决的方法

  • 自动化检查点

    • 自动化重启应用

      • 如何获取重启参数?

        • 用户预先定义重启命令和参数

      • 有结点故障时,如何顶替故障结点?

        • 系统备有后备结点,系统可用结点不足时,向系统加入备用结点

      • 检查点文件迁移问题

        • 重启时,进程可能会迁移

        • 检查点文件系统提供透明的检查点文件迁移


2011315

关键问题及拟解决的方法

  • 自动化检查点(自动重启流程图)

管理守护进程

(gctrl)

本地守护进程

(dcrd)

通知所有dcrd终止相关进程

收到终止应用请求

注销应用本次执行

Kill所有相关进程

备用结点替换系统故障结点

结点内注销应用本次运行

回复gctrl应用终止完成

以用户预定义的参数重启应用

应用终止结束

重启结束


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

预期成果及创新之处

  • 预期成果

    • 用户级检查点系统

      • 应用编程接口

      • 支持应用定义的负载平衡机制

      • 集成检查点数据存储管理

      • 自动化的检查点机制

  • 创新之处

    • 以数据为中心的检查点

    • 面向科学计算的检查点

    • 支持应用定义的负载平衡机制


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

已有工作基础

  • 调研了各类检查点实现技术

  • 调研了大规模科学计算的编程模型特点

  • 已完成系统的详细设计


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

研究计划及预期进展

  • 2011/05-2011/06

    • 用户接口实现、检查点同步机制的实现

  • 2011/07

    • 负载平衡机制的实现

  • 2011/08-2011/10

    • 实现检查点数据存储管理与故障自动检测

  • 2011/11-2012/01

    • 测评与整体优化

  • 2012/01-2012/04

    • 论文


2011315

大纲

  • 研究背景与意义

  • 国内外研究现状分析

  • 研究目标、内容

  • 关键问题及拟解决的方法

  • 预期研究成果及创新之处

  • 已有工作基础

  • 研究计划及预期进展

  • 参考文献


2011315

参考文献

  • 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


2011315

谢谢!


  • Login