OpenSHMEM系统级透明检查点技术解析
1. 引言
容错性是OpenSHMEM程序研究的一个活跃领域。检查点 - 重启技术有着悠久的研究历史,主要分为系统级检查点和应用级检查点两种方法。系统级检查点通常具有透明性,可由外部系统服务或操作系统调用;应用级检查点则可通过插入现有库来支持透明检查点。
本文提出了OpenSHMEM的首个系统级检查点解决方案,采用了DMTCP(分布式多线程检查点)平台。该平台直接支持分布式计算的检查点操作,与Hao等人之前基于应用级的检查点方法不同,后者依赖于插入OpenSHMEM运行时库本身。
理论上,可以使用基于MPI的OpenSHMEM实现,通过对底层MPI检查点 - 重启服务进行检查点操作来实现OpenSHMEM的系统级检查点。但由于当前MPI实现依赖于BLCR进行单进程检查点,而BLCR不支持大多数OpenSHMEM实现所依赖的POSIX SysV共享内存对象,因此这种方法不可行。
2. 检查点技术回顾
DMTCP的架构如下:一个集中的DMTCP协调器进程接受检查点请求。当进行检查点操作时,它会向每个用户进程中的检查点线程发送检查点消息。检查点线程会使用户线程“静止”,向内核查询状态(如打开的文件描述符和文件偏移量),然后将内存复制到检查点映像文件中。每个用户进程都有一个检查点映像文件。
最初的DMTCP版本仅支持基于TCP的套接字。后来,Cao等人增加了对Infiniband的检查点支持,无需先将MPI计算从网络断开。DMTCP的两个创新点是能够对UNIX域套接字进行检查点操作,以及使用领导者选举来正确恢复共享内存区域的单个共享副本,而不是在重启时恢复单独的私有内存区域。 </
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



