270 likes | 443 Views
硕士中期考核. 面向科学 计算的 用户级检查点系统. 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011 年 12 月 13 日. 提纲. 学位论文研究情况 已 取得的阶段性成果 下一步工作 计划 课程完成 情况. 提纲. 学位论文研究情况 已 取得的阶段性成果 下一步工作 计划 课程完成 情况. P 级系统. 随着系统规模的迅速增长, MTTI 也迅速降低.
E N D
硕士中期考核 面向科学计算的用户级检查点系统 学生:张福玺 导师:赵晓芳 高性能中心操作系统组 2011年12月13日
提纲 • 学位论文研究情况 • 已取得的阶段性成果 • 下一步工作计划 • 课程完成情况
提纲 • 学位论文研究情况 • 已取得的阶段性成果 • 下一步工作计划 • 课程完成情况
P级系统 • 随着系统规模的迅速增长,MTTI也迅速降低 C. Engelmann and S.L. Scott: Reliability, Availability, and Serviceability (RAS) for Petascale High-End Computing and Beyond
P级规模下检查点 • P级系统,无优化的情况下,一次检查点操作耗时将达到30分钟! Compute nodes 40 to 200 GB/s Parallel file system (1 to 2 PB) Total memory: 100-200 TB Network(s) I/O nodes 1000 sec. < Ckpt < 2500 sec.
开题以来的相关研究进展 • SRS(Stop Restart Software) • providing an easy-to-use checkpointing library that allows reconguration of parallel applications. • allowing checkpoint data to be ported across heterogeneous machines • providing migration of the application across locations that do not share common file systems without requiring the user to migrate data
提纲 • 学位论文研究情况 • 已取得的阶段性成果 • 下一步工作计划 • 课程完成情况
系统框架 process i process i process i libdcr3 libdcr3 libdcr3 libdcr3 libdcr3 libdcr3 node A node B node X MPI MPI MPI MPI MPI MPI process j process j process j dcrd dcrd dcrd kernel kernel kernel gctrl PPS FS (HDFS) 数据流 控制流
系统框架 • 功能/模块划分 • 全局控制器gctrl • 检查点操作时结点间全局同步 • 全局状态(应用状态、结点状态)监测 • 故障监测与自动重启触发 • 本地控制器dcrd • 管理本结点上运行的应用进程 • 执行gctrl下发的命令(通知进程执行检查点、重启等) • 用户函数库libdcr3 • 为应用提供编程接口(初始化、检查点、重启等) • 同步、存取数据操作等
扩展性问题 • 应用负责通信一致性,选择系统处于一致的时刻触发检查点操作 • 全局一个管理进程(gctrl),每个结点一个本地管理进程(dcrd) • dcrd负责结点内的进程管理与信息收集 • gctrl管理所有的dcrd • 控制信息分级传输,仅由gctrl传输给dcrd,dcrd之间无信息传输 • 每个管理进程均维护一个消息队列 • 控制信息传输采用频外传输,独立于MPI环境 • 数据传输在应用运行时的MPI环境下进行 • 控制命令消息简短(100字节以内)、处理简单(注册、查询等),可保证检查点系统在大规模系统下亦能有良好的性能
自动化检查点框架 • 应用运行时故障检测 • 注册进程 • 广播查询 • 进程状态(NULL信号) • 回复gctrl • 检测完成 • 回复超时为结点故障 dcrd MPI进程 gctrl dcrd MPI进程 dcrd MPI进程
自动化检查点框架 • 自动重启 • dcrd故障检测回复超时为结点故障 • 对于非结点故障,重启的进程将继续运行在原结点上 • 对于结点故障,选用后备结点替代故障结点,重启的进程将迁移到替代结点上 • 当可用计算核数不足时,将无法自动重启
自动化检查点框架 gctrl dcrd dcrd dcrd dcrd dcrd MPI进程 MPI进程 MPI进程 MPI进程 MPI进程 PPS FS(HDFS)
自动化检查点框架 • 检查点系统自身的容错 • 系统部署 • gctrl读入结点列表文件 • gctrl启动各结点dcrd • 运行时加入新的dcrd • 新dcrd向结点列表文件中逻辑相邻的结点查询gctrl所在 • 向gctrl发出请求加入 • gctrl回复
自动化检查点框架 • 检查点系统自身的容错 • 运行时检测 • gctrl状态 • watchdog监视运行状态 • 日志文件保存gctrl运行时的信息(所有dcrd结点、检查点序号等) • dcrd状态 • watchdog监视运行状态 • gctrl定期广播查询 • 日志文件保存dcrd运行时信息
自动化检查点框架 • 检查点系统自身的容错 • 故障处理 • watchdog发现gctrl异常崩溃 • 重启gctrl,读入保存的日志以恢复以前的状态 • dcrd回复超时 • gctrl将对应结点标记为坏结点 • watchdog发现dcrd异常崩溃 • 重启dcrd • 通知gctrl,本dcrd从故障中恢复 • gctrl将对应结点标记设为好结点 • 应用执行检查点时,gctrl或dcrd异常崩溃 • 本次检查点会失败 • gctrl恢复之后将启动应用自动重启流程 dcrd dcrd gctrl dcrd dcrd dcrd
检查点数据存储管理 • 采用写时复制(COW),非阻塞式检查点,检查点数据保存与应用的继续执行在时间上重叠 • 采用高效快速的压缩算法(snappy),将检查点数据保存之前在线压缩,降低IO带宽对检查点性能的影响 • 自动垃圾回收,只保存最新的检查点数据 • 使用HDFS作为保存检查点数据的文件系统(N模冗余,分布式存储)
检查点整体流程 检查点开始 0号MPI进程 保存本次检查点信息 (版本信息、 总MPI进程数、 第n次检查点等) 压缩检查点数据 (snappy) 是否有负载平衡? 是 子进程退出 否 负载平衡 数据处理 保存压缩后的数据 调用fork() 父进程返回继续执行计算 子进程保存检查点数据 检查点结束
用户编程接口 • int dcr3_init(const char *app_string) • int dcr3_lbpre(int *(*lbpre_cb)(char **ckpt_data, int *data_len, int data_num)) • 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_finalize(void)
已完成的测试结果 • 模拟网络环境下(一个结点上运行多个dcrd),完成对上千结点规模的应用检查点扩展性测试 • 完成存储管理的功能测试 • 检查点数据的在线压缩存储与读取 • 垃圾数据的自动回收 • 重启时,检查点数据的自动迁移 • 完成自动化检查点框架功能性测试 • 软件故障以及结点故障识别 • 故障时自动重启应用 • 检查点系统自身的容错性
部分测试结果 • msFEM(有限元分析) 5结点、32进程
部分测试结果 • msFEM(有限元分析) 5结点、32进程
提纲 • 学位论文研究情况 • 已取得的阶段性成果 • 下一步工作计划 • 课程完成情况
下一步工作计划 • 更大规模系统下可扩展性测试 • 完善测试数据 • 撰写学位论文
提纲 • 学位论文研究情况 • 已取得的阶段性成果 • 下一步工作计划 • 课程完成情况
课程完成情况 • 总学分34.5,学位课19学分 • 部分课程 • 英语A • 排队论 • 高性能计算机系统 • 编译程序高级教程 • 主流操作系统技术与实践 • 分布式操作系统 • 并行处理 • 高性能并行计算