论文部分内容阅读
科学技术的发展进步使得越来越多的学科领域开始采用科学计算、数值模拟的手段来解决科学研究和工程实践中遇到的各种问题,这些应用问题往往具有大计算量,大数据存储量,以及大数据交换量的需求,大规模并行计算机系统是当前满足这些高性能计算需求的主流计算机系统结构实现方式。随着并行计算机系统规模的扩展,随之而来的是并行应用的可扩展性难题和系统可靠性的降低,一些超大规模并行计算系统的平均故障间隔时间甚至只有几小时,在这种情况下,如果不能提供高性能、具有容错能力的并行软件开发和运行环境,那么很多大规模的并行应用将无法高效率地运行,并最终成功完成,这将严重影响系统和应用的可用性。消息传递是开发并行应用的主要编程模型,MPI是消息传递编程接口的事实标准,具有并行算法实现灵活、性能高和可移植性好等特点。本论文紧密围绕提高大规模并行计算机系统和应用的可用性这一中心目标,对实现高可用MPI并行编程环境的相关问题展开研究,包括性能、可扩展性和容错能力。另外,考虑到未来并行计算系统的规模还将进一步扩大,为了更有效的进行容错处理,论文还从MPI并行程序开发的角度,研究探讨了高效的容错并行算法设计方法。论文的主要研究成果和创新包括:1)提出了一个面向大规模并行计算机系统的新型通信硬件接口CNI的结构设计,并在其上实现了Communication Express(CMEX)通信软件接口,该软件接口能够提供保护的、并发的、完全用户级的通信操作,支持进程间的零拷贝数据传输,并且采用无连接的语义实现了报文传输和RDMA两种通信机制,具有很好的数据传输性能,对实现具有良好可扩展性的软件系统提供了重要支持。我们也提出了采用静态程序分析和模型检验技术对CMEX通信软件接口进行验证的基本方法,以保证通信软件接口本身的正确性和可靠性。2)基于CMEX通信软件接口和MPICH2系统,本文研究了通过RDMA通信机制实现高性能、可扩展MPI并行编程环境MPICH2-CMEX的技术途径。面向性能需求,设计和实现了基于RDMA读和写操作的高效消息数据传输方法;面向可扩展性需求,一是提出了动态反馈信用流控算法,允许频繁通信的任务间通信资源的动态扩展,从而更有效地配置通信资源;二是结合并行应用的近邻通信模式,实现了组合通道数据传输方法,在并行应用的规模扩展时,能够在保证计算性能的同时,控制MPI系统内部的通信和内存资源消耗。我们在大规模并行计算机系统中进行了实际MPI并行应用的测试,取得了很好的计算加速比。3)为提高MPI并行应用的容错能力,在MPICH2-CMEX并行编程环境中设计实现了一个完全用户透明的系统级并行检查点,采用阻塞式协同检查点协议。针对并行检查点操作过程的主要开销来源,一是提出了结合并行应用的近邻通信模式特性,利用虚连接技术优化的低延迟协同协议实现技术,二是设计了利用全局并行文件系统的检查点系统结构,通过全局共享目录和并行I/O操作,简化检查点映像文件的管理,减少检查点映像数据的存储开销。通过一些并行应用的测试表明,该并行检查点系统具有较低的检查点运行时间开销,协同协议具有良好的可扩展性,检查点映像存储过程时间较短,为并行应用的长期可靠运行提供了有效的支持。4)面向未来超大规模并行计算机系统的并行应用容错需求,提出了一种面向MPI并行程序的新型容错并行算法(FTPA)的设计方法,该方法的核心思想在于它是通过并行应用中无故障任务并行复算故障任务的工作来应对系统中出现的故障。本文讨论了FTPA算法的设计思路和算法实现中的关键问题,提出了指导FTPA算法设计的进程间定值—引用分析方法和相关原则,并通过具体的并行应用实例说明了在不同并行应用中FTPA算法的实现细节。在大规模并行计算系统中的实际测试表明,FTPA算法的运行时间开销较低,具有较好的可扩展性。FTPA算法和检查点系统相结合,将是一种解决大规模并行应用容错的有效技术途径。