论文摘要
随着计算机集成技术的不断发展,越来越多的CPU可以同时访问同一内存空间,共享内存体系结构(SMP)逐渐在并行计算领域占据主导地位。另外,制造商热衷于将SMP集群化,来构建远胜于单一结构的并行系统。在Top500前十名超级计算机中,大部分是SMP集群(SMP Cluster)。然而,适合于SMP集群的并行编程模型研究相对滞后。为了找到一种适合于现有平台及应用的编程模型,往往需要做大量试验,不断的对比、分析和修正。针对这一突出问题,本文做了如下研究工作:(1)以MPI+OpenMP为代表详细描述了适用于SMP集群的混合并行编程模型。它贴近于SMP集群的体系结构且综合了消息传递和共享内存两种编程模型的优势,能够得到更好的性能表现。在此基础上,重点讨论了混合模型的实现机制、并行化粒度选择、循环选择、线程数控制、优化措施以及相对于纯MPI模型的优势。最后指出,在一定条件下混合并行编程模型是SMP集群的最优选择。(2)性能评测和建模是使得优化并行程序得以进行的关键步骤。混合并行编程模型,例如MPI+OpenMP,需要分析确定两种性能效率和特定硬件平台下的最佳处理器和线程数。为了研究这些问题,我们提出基于少量参数却能较好逼近运行时系统复杂性的性能评测模型。我们结合两种不同的技术,包括静态分析和并行开销度量基准。静态分析的作用在于通过OpenUH编译器获得应用标识,而并行开销度量基准通过Sphinx和Perfsuite搜集系统特征。最后,我们提出了一种用于确定通讯和计算效率的性能评测度量模型。(3)通过一个具体的应用案例详细描述了混合并行程序的设计过程和试验分析方法。通过对结果的分析展示了上述研究工作的有效性,结果是令人满意的。多核体系结构的出现直接导致了多核SMP集群的出现。这一新兴的复杂体系结构,无论是对于企业级服务器还是大规模科研应用,都已经成为性价比最高的首选解决方案。本文最后,对(多核)SMP集群的编程模型及优化进行了展望。