44
面面面面面面面 面面面面面面面面面 面面面 面面 面面面 面面面面面面面面 2011 面 3 面 15 面 面面面面面面

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

学生:张福玺导师:赵晓芳

高性能中心操作系统组2011 年 3 月 15 日

硕士开题报告

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

大纲

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

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

大纲

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

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

研究背景与意义 科学计算离不开 HPC

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

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

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

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

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

研究背景与意义 实例 1

Jaguar ( 2010.11 Top500 Rank2 )

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

实例 2 Jaguar ( 2010.11

Top500 Rank2 ) 核聚变 模拟电波向里传播加热

聚变等离子

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

研究背景与意义

实例 3 Franklin ( 2010.11

Top500 Rank26 ) 32,000 processors 模拟超新星

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

研究背景与意义

千万亿次科学计算的特点 计算问题的规模巨大

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

计算机体系结构非常复杂 包含上万个结点,每个结点包含多个处理器,每个处理器

包含多核或众核 千万亿次超级计算机系统平均无故障运行时间将缩短到以

几小时计 只有容错的程序才能完成计算

需要高效的动态负载平衡支持 自适应网格方法( Adaptive Mesh Refinement )

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

研究背景与意义

千万亿次科学计算对检查点技术的挑战高可扩展性

上万结点,十万甚至几十万的计算核超多计算进程并行检查点

系统全局一致性支持负载平衡的并行架构

检查点的同时进行高效动态负载平衡海量检查点数据管理

海量数据周期性的写操作与突发性的读操作海量数据在存储系统中的组织

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

研究背景与意义

用户级实现的优势系统级实现高度依赖硬件平台和操作系统可在不同的平台重启应用执行需要保存的数据明显少于系统级实现

应用级检查点数据几兆字节( megabytes )完整的系统级检查点数据几万亿字节

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

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

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

研究背景与意义

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

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

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

大纲

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

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

国内外研究现状分析

Cornell Checkpointing Compiler(C3) 面向共享内存程

序, OpenMP 半自动化用户级检查点

系统 程序调用函数

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

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

国内外研究现状分析

C3 检查点协议 阻塞、协作式1. 每个线程调用一次

barrier

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

3. 每个线程再调用一次 barrier

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

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

国内外研究现状分析

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

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

国内外研究现状分析

Libckpt用户级检查点增量检查点、写时复制检查点用户定制的检查点

可定制要保存的检查点内容 exclude_bytes(char *addr, int size, int usage)

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

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

国内外研究现状分析

Zoltan针对动态模拟类应用、并行分割、负载平衡、

数据管理面向数据对象、对于具体的数据结构中立提供多类的并行动态分割算法支持重新分割后数据自动迁移采用分布式目录的方式管理数据信息

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

国内外研究现状分析

Zoltan整体流程

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

大纲

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

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

研究目标 扩展性

压力测试规模达到 6000 结点以上 支持由应用语义定义的负载平衡

支持各类的负载平衡算法 检查点 /重启时自动数据迁移

高效检查点数据存储 保证海量检查点数据的可靠存储 减少检查点文件大小,减少 IO带宽对检查点性能的影响 检查点数据读写对应用性能的影响控制在 1% 以内

自动化的检查点 监测应用运行情况,当应用遇故障时自动重启

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

研究内容

超多进程并行执行检查点 支持负载平衡的机制

检查点 /重启时自动迁移数据 检查点数据存储管理

快速高效的 IO 处理 海量文件与数据的管理

自动化检查点机制 应用故障的检测重启恢复机制

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

大纲

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

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

关键问题及拟解决的方法

超多计算进程并行执行检查点触发检查点的时机

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

需要保存的系统状态最小 科学计算特点:采用迭代法求解大型稀疏线性方程组

检查点对象:仅保存用户定义的数据 不保存进程状态

开始

读数据

计算

写数据

结束

磁盘

磁盘

磁盘

磁盘

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

关键问题及拟解决的方法

超多计算进程并行执行检查点P1 和 P2 在仅在同一轮迭代计算过程中有互发消息,各进程在不同迭代之间没有消息

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

Iteration i Iteration i+1

Iteration i Iteration i+1P2

P1

Checkpoint m Checkpoint m+1 Checkpoint m+2

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

关键问题及拟解决的方法

支持负载平衡的机制针对科学计算的特点

面向数据的负载平衡根据应用场景的不同,算法由应用定义

应用注册用于分析数据的算法检查点 /重启时,根据所定义的算法将各

MPI 进程数据重新划分成平衡的数据分布传输不平衡数据,使得应用重新处于负载均

衡状态

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

关键问题及拟解决的方法

负载平衡时机(检查点)调用检查点之后写检查点数据之前

P0 P1 P2

checkpoint() checkpoint() checkpoint()

负载平衡分析 负载平衡分析 负载平衡分析

负载平衡数据传输

负载平衡数据传输

负载平衡数据传输

进程继续执行 进程继续执行 进程继续执行

barrier()

barrier()

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

关键问题及拟解决的方法

负载平衡时机(重启)由应用触发重启利用负载平衡算

法重新划分数据将负载平衡后的

数据作为实际的重启数据交给各进程

P0 P1 P2

restart() restart() restart()

负载平衡分析 负载平衡分析 负载平衡分析

负载平衡数据传输 负载平衡

数据传输

负载平衡数据传输

进程继续执行 进程继续执行 进程继续执行

barrier()

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

关键问题及拟解决的方法

检查点数据存储管理海量的检查点数据压缩 / 解压缩

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

检查点对压缩算法的要求

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

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

CD

fDS

DSf

CS

)1(

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

关键问题及拟解决的方法

检查点数据存储管理 几个压缩算法的对比

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

IO性能0

2

4

6

8

10

12

8.419.73

8.16.63 6.37

无压缩 ZLIB LZO

LZF Snappy

文件大小(MB)0

100200300400500600700800

670

346398 400 403

无压缩 ZLIB LZO

LZF Snappy

算法 压缩率 IO性能提升

Snappy 40% 25%

LZF 40% 21%

LZO 41% 5%

ZLIB 48% -16%

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

关键问题及拟解决的方法

检查点数据存储管理使用 snappy 对检查点数据进行压缩 / 解压缩

1 2 3 4 5 6 710%

11%

12%

13%

14%

15%

snappy压缩 FEM检查点数据

压缩率IO性能提升百分比

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

关键问题及拟解决的方法

检查点整体流程

检查点开始

是否有负载平衡?

调用 fork()父进程返回继续执行计算

子进程保存检查点数据

负载平衡数据处理

压缩检查点数据(snappy)

保存压缩后的数据

0号MPI 进程保存本次检查点信息

(版本信息、总MPI 进程数、第 n 次检查点等 )

子进程退出

检查点结束

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

关键问题及拟解决的方法

自动化检查点 应用运行过程中可能遇到的故障类型

应用故障:应用进程异常退出 系统故障:结点遇到操作系统故障

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

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

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

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

关键问题及拟解决的方法

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

向所有 dcrd广播查询命令

等待一定时间

是否收到所有dcrd 的正常回

复?

自动重启应用

管理守护进程(gctrl)

收到查询命令

所有相关进程是否正常?

回复 gctrl 应用正常

回复 gctrl 应用故障

状态查询结束

本地守护进程(dcrd)

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

关键问题及拟解决的方法

自动化检查点自动化重启应用

如何获取重启参数? 用户预先定义重启命令和参数

有结点故障时,如何顶替故障结点? 系统备有后备结点,系统可用结点不足时,向系统加入备用结点

检查点文件迁移问题 重启时,进程可能会迁移 检查点文件系统提供透明的检查点文件迁移

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

关键问题及拟解决的方法

自动化检查点(自动重启流程图)管理守护进程

(gctrl)

通知所有 dcrd终止相关进程

注销应用本次执行

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

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

重启结束

本地守护进程(dcrd)

收到终止应用请求

Kill所有相关进程

结点内注销应用本次运行

回复 gctrl 应用终止完成

应用终止结束

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

大纲

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

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

预期成果及创新之处

预期成果用户级检查点系统

应用编程接口支持应用定义的负载平衡机制集成检查点数据存储管理自动化的检查点机制

创新之处以数据为中心的检查点面向科学计算的检查点支持应用定义的负载平衡机制

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

大纲

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

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

已有工作基础

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

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

大纲

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

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

研究计划及预期进展

2011/05-2011/06用户接口实现、检查点同步机制的实现

2011/07负载平衡机制的实现

2011/08-2011/10实现检查点数据存储管理与故障自动检测

2011/11-2012/01测评与整体优化

2012/01-2012/04论文

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

大纲

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

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

参考文献1. http://www.top500.org2. http://www.scientificcomputing.com3. 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.4. 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.5. 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.6. 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.7. 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.8. E. Roman. A Survey of Checkpoint/Restart Implementations. Technical Report LBNL-54942, Lawrence Berkeley National Laboratory, July 2002.9. P. H. Hargrove and J. C. Duell. Berkeley Lab Checkpoint/Restart (BLCR) for Linux Clusters.10. W. Huang, G. Santhanaraman, H. -W. Jin, Q. Gao, and D. K. Panda. Design of High Performance MVAPICH2: MPI2 over InfiniBand.11. Q. GAO, W. YU, W. HUANG, and D. K. PANDA. Application-Transparent Checkpoint/Restart for MPI Programs over InfiniBand.12. J. Hursey, J. M. Squyres, T. I. Mattox, A. Lumsdaine. The Design and Implementation of Checkpoint/Restart Process Fault Tolerance for Open

MPI.13. S. Sankaran, J. M. Squyres, B. Barrett, and A. Lumsdaine. The LAM/MPI Checkpoint/Restart Framework: System-Initiated Checkpointing.14. 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.15. 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.16. 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.17. 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.18. L.M. Silva, J.G. Silva, "System-Level Versus User-Defined Checkpointing," srds, pp.68, The 17th IEEE Symposium on Reliable Distributed

Systems, 1998.19. 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.20. 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.21. L.M. Silva, J.G. Silva, "Global Checkpointing for Distributed Programs", Proc. 11th Symp. Reliable Distributed Systems, Houston, TX, Oct. 1992,

pp. 155-162

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

谢谢!