Upload
awena
View
129
Download
0
Embed Size (px)
DESCRIPTION
中国科学院 计算技术研究所 ( 2009 硕 )毕业论文 答辩试讲. 面向科学计算 的 用户级检查点系统. 学生 :张福玺 导师 :赵晓芳 2012 年 3 月. 提纲. 研究背景 相关研究工作 关键 技术 DCR3 设计 与 实现 测试与评价 总结. 提纲. 研究背景 相关研究工作 关键 技术 DCR3 设计 与 实现 测试与评价 总结. 科学计算离不开 HPC. 利用超级计算机求解科学问题、进行科学模拟. 实例 1 Franklin ( 2010.11 Top500 Rank26 ) 32,000 processors 模拟 超新星. - PowerPoint PPT Presentation
Citation preview
面向科学计算的用户级检查点系统学生:张福玺导师:赵晓芳2012 年 3 月
中国科学院 计算技术研究所( 2009 硕)毕业论文答辩试讲
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
科学计算离不开 HPC
• 利用超级计算机求解科学问题、进行科学模拟实例 1• Franklin ( 2010.11 Top500 Rank26 )• 32,000 processors• 模拟超新星
实例 2• Jaguar ( 2010.11 Top500 Rank2 )• 核聚变• 模拟电波向里传播加热聚变等离子
Systems 2009 2011 2015 2018
System peak 2Peta 20Peta 100-200P 1ESystem memory 0.3PB 1.6PB 5PB 10PBNode performance 125GF 200GF 200-400GF 1-10TFNode memory BW 25GB/s 40GB/s 100GB/s 200-400GB/sNode concurrency 12 32 O(100) O(1000)Interconnect BW 1.5GB/s 22GB/s 25GB/s 50GB/sSystem size(nodes) 18,700 100,000 500,000 O(million)Total concurrency 225,000 3,200,000 O(50,000,000) O(billion)Storage 15PB 30PB 150PB 300PBIO 0.2TB/s 2TB/s 10TB/s 20TB/sMTBF 4days 19h4min 3h52min 1h56min
高性能计算机系统规模迈入 P 级• 科学计算迈入千万亿次计算时代• MTBF 随规模的增大而迅速降低
科学计算的容错需求• P 级系统,一次全系统检查点将耗时 30 分钟!
• P 级科学计算对检查点技术的需求– 检查点设置低开销– 检查点文件保存高可靠性与透明迁移– 自动化的故障处理:自动故障检测与应用重启恢复
Systems Perf. Ckpt time SourceRoadRunner 1PF ~20 min. PanasasLLNL BG/L 500 TF >20 min. LLNLArgonne BG/P 500 TF ~30 min. LLNLTotal SGI Altix 100 TF ~40 min. estimationIDRIS BG/P 100 TF 30 min. IDRIS
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
进程检查点• 系统级检查点
– 在核心层实现进程状态的保存和恢复– 透明性好、移植性较差、开销大– EPCKPT 、 CRAK 、 BLCR 、 TICK
• 用户级检查点– 目标进程的用户态上下文中进行保存和恢复– 自定义要保存的进程状态和数据– 有效降低检查点操作给存储系统带来的压力– 减少协作式检查点的同步开销
用户级检查点实现• Condor
– 层次化架构、提供灵活的资源管理服务– 检查点仅支持单进程任务,不支持使用 fork 及类似系统调用的任务
• CHK-LIB– 支持用户定义的检查点 (user-defined checkpointing) 的通信库– 不保存系统变量,如进程栈、进程寄存器等信息– 调用检查点时,应用必须处于一致的状态
• Libckpt– 增量检查点、写时复制检查点– 用户定制的检查点
• 可定制要保存的检查点内容• 程序指定可进行检查点的位置(同步检查点)
并行检查点• 进程检查点
– 基于 BLCR : LAM-MPI , MVAPICH2 , MPICH2• 通信通道检查点
– TCP/IP• 用户级,清空通信通道• 内核级,修改协议栈: TCPCP2• 增加中间层方法, ZAP 容器: Cruz
– InfiniBand• 用户级,清空通信通道: MVAPICH2• 内核级:暂无
• 同步控制– 非协同检查点,多米诺效应 – 协同检查点
• CoCheck , OpenMPI , AMPI
自动化故障处理• 自我感知故障、自我修复、自我管理
– University of Wisconsin :• Condor
– Lawrence Livermore National Laboratory :• Simple Linux Utility for Resource Management(SLURM)
– Platform Computing :• Platform LSF
– IBM :• Autonomic Computing
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
降低检查点开销• 内存排除
– 如何定位可以被排除的内存:如只读内存– 每次检查点如何最大程度地排除内存– 透明的内存排除技术
• 代码段:无需保存,恢复时从可执行文件中重新载入• 利用栈指针:无需保存当前栈指针以下的内存区• 增量式检查点:利用页式虚存管理• 缺点:以页为单位识别,粒度较粗
– 程序员指导的内存排除• 科学计算程序经常分配大量的内存作为临时数组等数据结构,可在进程状态恢复操作之后进行重建• 通过应用程序辅助,向检查点库指出“不重要”的数据区域
降低检查点开销(续)• 无盘检查点
– 频繁的无盘检查点– 相对较长间隔的稳定存储检查点
• 写时复制– 隐藏检查点操作所消耗的时间
• 检查点操作与程序运行并行执行– 无需立刻将所有数据复制到缓冲区中– 利用页式虚拟存储器的功能,将程序空间内的所有页都置为“只读”– 程序修改某一页面时才将该页面复制到缓冲区
降低检查点开销(续)• 检查点在线压缩
– 要求压缩的时间小于因数据量减少而节约的时间– 设定 S为检查点数据大小, C为压缩速度, f为压缩率,
D为磁盘写速度
– 压缩算法对比• 选用 Snappy 算法
CDf
DS
DSf
CS
)1(
算法 压缩后文件大小 压缩率 IO性能 IO性能提升无压缩 670 8.41 Snappy 403 40% 6.37 25%LZF 400 40% 6.63 21%LZO 398 41% 8.1 5%ZLIB 346 48% 9.73 -16%
检查点文件存储技术• 本地存储:
–延迟小、减少网络竞争–节点失效导致状态不可恢复
• 全局共享存储:–维护可靠性–延迟大、增加网络竞争
• 两级存储:本地存储 + 全局共享存储4
3
1
计算结点进程
磁盘
空闲结点进程
磁盘
全局共享存储2
副本备份• 副本放置(三副本):
–本地节点–本机架另外一个节点– 不同机架的一个节点–当副本数小于 3 ,找到新节点复制副本,保证总是 3副本
• 读取优先级:–本地节点副本 > 本机架副本 > 其他机架副本
流水线复制副本建立管道
数据流
结束
客户端 结点 i 结点 j 结点 k
建立管道
逻辑块 0
逻辑块 2
逻辑块 3
关闭管道
t0
t1
t2
t3
逻辑块 0
故障检测• 常用检测技术
– 系统定时巡检:• 每隔一定时间周期就对被检测对象进行一次检测• 时间周期短,故障检测的精确度高• 通信开销大
– 心跳检测:• 在一段时间间隔向外广播自身的状态• 网络延迟易导致误判
• 结合定时巡检与心跳检测– 应用进程端采用心跳检测,周期 T2– GCTRL 定期巡检,周期 T1 ( T1>T2 )– 引入 DCRD
• GCTRL 检测 DCRD• DCRD 检测本地应用进程
GCTRL
DCRD
进程 进程 进程
DCRD
进程 进程 进程
DCRD
进程 进程 进程
自动化重启恢复开始
原节点可用
Restart
自动检测与自动检查点循环
备用节点足够
重启崩溃节点
YES
NO
任务失败
清理资源
资源准备
崩溃节点足够
加入备用节点列表
加入坏节点列表重启成功
YES
YES
YES
NO
NO
NO
提纲• 研究背景• 相关研究工作• 关键技术• DCR3设计与实现• 测试与评价• 总结
DCR3 系统组件关系
DCRDAPP
MPI
libdcr3
GCTRL
PPS
内核层
用户层
网络t
CT
核心控制网络• GCTRL 将节点分组(同一机柜 /刀片箱)• 每组一个中转节点• 短连接、无通信时不保持连接• GCTRL 与各 DCRD消息均由组内中转 DCRD转发• GCTRL 统一管理 DCRD 分组信息
DCRD集
GCTRL
用户函数库• 编程时调用接口,链接时链入 libdcr3• 关键的函数:
/* 注册应用与 MPI 进程, * app_string 用于标识应用本次运行字符串。 */int dcr3_init(const char *app_string);
/* 注销应用。类似 MPI_Finalize()函数。 */int dcr3_finalize(void);
/* 检查点请求。 */int dcr3_ckpt(char **ckpt_data, int *data_len, int data_num);
/* 重启请求。 */int dcr3_rstr(int round, char ***rstr_data, int **data_len, int *data_num);
用户函数库(续)• 各参数关系
– int dcr3_ckpt(char **ckpt_data, int *data_len, int data_num)
data_num
ckpt_datadata_len
检查点文件格式
第 0 次检查点RANK号为 1 的进程
后续数据总条数
第 0条数据第 1条数据
标明为 dcr3 应用dcr3版本号
应用标识串
本次运行总进程数第 0 次检查点
/tmp/msFEM/0/
0.info.ckpt.dcr3
0.0.ckpt.dcr3
0.1.ckpt.dcr3
dcr3
0.2.0
msFEM
200
0
0
1
data_num
ckpt_data[0]
ckpt_data[1]
data_len[]
后续每条数据长度
检查点存储根目录:系统配置应用本次运行的检查点文件目录: dcr3_init() 指定第 N 次检查点目录名第M号进程检查点文件名
PPS(Peta Particle Storage) 子模块• 为 libdcr3 提供文件操作相关接口• 分布式文件系统采用 HDFS ,封装实现
– 文件系统的改变无需应用重编译 /链接• HDFS 相关特性:
– 副本备份• 采用三副本存储
– 数据校验– 流水线写– Java虚拟机
• 可能会影响存储时间开销
自容错机制• 初始部署:结点列表文件• 运行时故障
– gctrl/dcrd异常崩溃• watchdog监视运行,日志文件保存运行信息• 重启进程,读取日志文件
– dcrd 结点故障• gctrl 定期广播,故障结点被标记为坏结点• 修复后,启动 dcrd 通知 gctrl
– gctrl 结点故障• 人工选择可用结点,重启 gctrl
• 故障时应用处于运行中– 检查点时:检查点失败,应用异常退出
• gctrl触发自动重启– 非检查点时:不影响应用运行
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
测试环境• 曙光 6000刀片机• 两颗 Intel(R) Xeon(R) X5675六核 CPU• 内存 48 GB 、千兆以太网与 InfiniBand• SUSE Linux Enterprise Server 10 • linux- 2.6.16.60-0.21-smp• MPI 实现: MPICH2 • 测试应用: msFEM ( 18节点、 NP=216 )
– 三维、非线性、大变形多尺度材料模拟程序,基于塑性梯度理论,可以考虑温度 -率相关性和材料损伤– 有限单元数量从一百万到一千万
检查点总开销• 检查点时间间隔 300s
• HDFS : Java虚拟机的参与,占用较多计算资源1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
7,000,000
8,000,000
9,000,000
10,000,000 0
20
40
60
80
100
120
140
160
180
200
BLCRDCR3-LOCALDCR3-HDFSnockpt
有限单元数量
应用运行时间(分)
单次检查点开销
• 与 BLCR 相比,开销减少 85% 以上– 使用 COW 技术,隐藏检查点开销
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
7,000,000
8,000,000
9,000,000
10,000,000 0.00
20.00
40.00
60.00
80.00
100.00
120.00
140.00
BLCR
DCR3-LOCAL
DCR3-HDFS
有限单元数量
单次检查点开销(秒)
• 与 BLCR 相比,延迟减少大约 75%– 检查点数据量小– 同步开销小
• HDFS 的 sync 只保证数据到达数据结点,并不保证数据已完全在磁盘上了
检查点延迟
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
7,000,000
8,000,000
9,000,000
10,000,0000.0
20.0
40.0
60.0
80.0
100.0
120.0
BLCRDCR3-LOCALDCR3-HDFS
有限单元数量
检查点延迟(秒)
检查点文件空间开销有限单元数量 BLCR( GB
)DCR3( GB
)空间开销减少百分比
1,000,000 13.4 2.8 79.17%2,000,000 25.2 5.6 77.71%3,000,000 34.2 8.4 75.37%4,000,000 43.2 11.0 74.50%5,000,000 52.2 13.3 74.34%6,000,000 63.0 16.2 74.29%7,000,000 72.9 19.6 72.70%8,000,000 81.4 22.4 72.27%9,000,000 90.3 25.2 71.92%
10,000,000 100.8 28.0 72.14%
重启开销
• 纵轴为重启时间(秒)取基数为 10 的对数• HDFS : Java虚拟机、数据迁移
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
7,000,000
8,000,000
9,000,000
10,000,00010
100
1000
10000
100000
BLCR
DCR3-LOCAL
DCR3-HDFS
扩展性模拟测试• 同组节点的 DCRD放到同一个节点上• 本组中转结点与本组其他 DCRD 在不同节点上
– 确保所有消息均是节点间传输• 模拟 2000个节点• GCTRL发送到收到所有回复消息时间小于 0.2秒• 定期巡检周期 2秒,收到所有回复小于 2.5秒• 结论:没有因为自身规模的增加而导致网络延迟的增加
GCTRL
DCRD
DCRD集合
提纲• 研究背景• 相关研究工作• 关键技术• DCR3 设计与实现• 测试与评价• 总结
总结• 本文主要的工作和贡献主要体现在以下三个方面:
– 提出了以应用数据为中心的检查点,仅保存与应用指定的数据,与系统级实现相比大幅提升性能。• 检查点开销减少 85% 以上• 检查点延迟减少大约 75%• 存储空间开销减少 70% 以上
– 设计并实现了一个自动化的检查点系统 DCR3• 映像文件管理、故障检测、故障恢复、节点替换
– 提高 DCR3 系统可扩展性,使得可以支持曙光 6000机群系统上千节点规模
下一步工作• 对曙光 6000 的全规模的压力测试与调优。• 支持灵活多变的进程数可变重启。重启时根据系统可用计算核数调整重启的进程数,与应用合作完成检查点数据的重新分割。• 检查点数据存储的负载平衡,动态调节各结点存储负载。
课程情况• 本人已经按照研究生院课程要求修完全部课程,并获得毕业所要求的学分。
工程情况• 参与 PetaParticle项目中用户级检查点系统
DCR3 的设计、开发和调试工作。
谢谢 !
系统框架DCR3系统组件关系 DCR3分层拓扑结构
DCRD
APP
MPI
libdcr3
GCTRL
PPS
内核层
用户层
网络
t
CT
DCRD集
GCTRL