论文部分内容阅读
异步划分地址空间编程模型(APGAS)是并行编程模型的一次重要革新。目前,集群环境呈现出以下几个特点:(1)高并行性,集群中的计算节点成千上万,可以利用的并行性异常丰富;(2)内存访问性能层次化,集群中单节点多为NUMA结构,并可能存在协处理器;节点之间通过网络互联。这种结构导致了集群中内访访问性能的层次化;(3)异构性,集群中存在着性能不同、体系结构不同的各种计算资源。这些特点对并行编程模型带来了很大的挑战。为了提高程序员的编程效率,应对集群环境变化对编程模型带来的挑战,APGAS模型应运而生。AGPAS模型已经在学术界受到广泛关注,而在工业界,APGAS模型在IBM公司内部也已被广泛应用,IBM公司的许多大型应用都是基于该模型而实现。当前APGAS模型的一个重要缺陷是其实用性较弱,尤其是其集群资源管理与优化能力,导致其无法在工业界中被广泛应用。与该能力相关的主要问题包括:(1) APGAS程序的可靠性问题;(2) APGAS模型数据的任务亲和性引发的资源管理问题;(3)性能异构集群环境下引发的负载均衡问题;(4)体系结构异构集群环境下模型的性能问题。由于发展时间较短,目前学术界和工业界对APGAS的研究多针对其性能、可移植性、可编程性以及其应用领域,而对上述集群资源管理与优化相关问题的研究较少或基本没有。本文以基于APGAS模型的X10并行编程语言为例,在充分分析APGAS模型对集群资源管理与优化相关问题需求的基础之上,提出了一个系统的解决方案,以提高APGAS模型的集群资源管理与优化能力。本文针对APGAS程序的可靠性,APGAS模型对计算资源管理的支持,对全局负载均衡能力的支持,以及对MIC异构计算资源使用的支持这几个方面进行研究,以期提高APGAS模型的实用性。这几个问题的研究在APGAS模型的相关研究中都属首次。该研究致力于提供一套实际、有效、透明以及高性能的解决方案,使得现有APGAS程序可以方便地利用该研究成果。本文提出的方案充分考虑了APGAS模型自身的特性,因而使得对程序性能的影响降到最低和对资源的利用率最高。并且,该方案尽可能不增加程序员的额外负担,维持了利用APGAS模型编写并行程序的高生产效率。具体而言,本文的主要贡献如下:·提出了基于APGAS编程模型的并行程序可靠性问题的高效解决方案,设计并实现了X10-FT系统来提高APGAS应用程序的可靠性。X10-FT系统在X10语言系统中引入了经典的检查点(Checkpoint)机制,并结合APGAS的特性与一些成熟的分布式系统中的技术,例如Paxos协议和分布式文件系统,从而使得X10应用程序具有很高的容错能力。X10-FT系统中基本没有单点故障点(Single Point Failure),并且对X10应用程序用户透明。详细的测试表明,利用X10-FT系统,各类X10应用程序都可以获得较好的容错能力,并且因为容错引入的性能损失也在可以接受的范围之内(平均性能损失小于20%)。·提出了APGAS程序中计算单元迁移的技术,以支持集群的资源管理与优化功能,以及APGAS程序的全局负载均衡。设计并实现了X10-PM系统以提高APGAS程序的资源管理与优化能力。X10-PM系统的设计充分考虑了APGAS模型的特点,同样也对X10程序员透明。在X10-PM编译器和运行时的帮助下,无需程序员的干涉,X10应用程序就可以支持动态迁移。X10-PM编译器通过对X10程序源代码的静态分析就可以自动找出程序在执行过程中目标计算单元迁移的最优时间点。在这些点迁移具有最小的性能开销,并能保证迁移前后X10程序全局状态的一致性。详细的测试表明,当前的X10-PM系统最少只需要4秒就可以成功地将一个APGAS基本计算单元在集群上不同计算节点之间迁移,从而有效地支持了APGAS程序对集群资源管理与优化以及全局负载均衡的需求。·对在APGAS模型下如何有效地利用MIC架构计算资源对程序进行加速做出了研究,提出了APGAS模型下MIC架构处理器的编程范式,并给出了一些关键参数的调优原则,从而使得APGAS程序员可以方便地利用MIC计算资源对程序进行加速。该编程范式充分考虑了APGAS模型的特点以及MIC架构处理器的特性,有效地发挥了各自的优势,并原生支持MIC架构处理器的Offload模式以及Native模式。另外,该编程范式有良好的向后兼容性,使用该范式现有应用程序代码只需要做少量改动就可以使用MIC计算资源进行加速。测试结果表明,使用此编程范式大部分应用程序都可以利用MIC计算资源获得较好的性能提升。在我们的实验平台上,在使用单块MIC卡的情况下大部分程序都可以获得一倍左右的性能加速,而一些具有高并发特性的应用程序在使用单块MIC卡时其性能加速比可以达到3。