节点文献
基于SMP集群的MPI+OpenMP混合并行编程模型研究与应用
Research and Application of MPI and OpenMP Hybrid Programming Model Based on SMP Clusters
【作者】 王惠春;
【导师】 曹学年;
【作者基本信息】 湘潭大学 , 计算数学, 2008, 硕士
【摘要】 随着计算机集成技术的不断发展,越来越多的CPU可以同时访问同一内存空间,共享内存体系结构(SMP)逐渐在并行计算领域占据主导地位。另外,制造商热衷于将SMP集群化,来构建远胜于单一结构的并行系统。在Top500前十名超级计算机中,大部分是SMP集群(SMP Cluster)。然而,适合于SMP集群的并行编程模型研究相对滞后。为了找到一种适合于现有平台及应用的编程模型,往往需要做大量试验,不断的对比、分析和修正。针对这一突出问题,本文做了如下研究工作:(1)以MPI+OpenMP为代表详细描述了适用于SMP集群的混合并行编程模型。它贴近于SMP集群的体系结构且综合了消息传递和共享内存两种编程模型的优势,能够得到更好的性能表现。在此基础上,重点讨论了混合模型的实现机制、并行化粒度选择、循环选择、线程数控制、优化措施以及相对于纯MPI模型的优势。最后指出,在一定条件下混合并行编程模型是SMP集群的最优选择。(2)性能评测和建模是使得优化并行程序得以进行的关键步骤。混合并行编程模型,例如MPI+OpenMP,需要分析确定两种性能效率和特定硬件平台下的最佳处理器和线程数。为了研究这些问题,我们提出基于少量参数却能较好逼近运行时系统复杂性的性能评测模型。我们结合两种不同的技术,包括静态分析和并行开销度量基准。静态分析的作用在于通过OpenUH编译器获得应用标识,而并行开销度量基准通过Sphinx和Perfsuite搜集系统特征。最后,我们提出了一种用于确定通讯和计算效率的性能评测度量模型。(3)通过一个具体的应用案例详细描述了混合并行程序的设计过程和试验分析方法。通过对结果的分析展示了上述研究工作的有效性,结果是令人满意的。多核体系结构的出现直接导致了多核SMP集群的出现。这一新兴的复杂体系结构,无论是对于企业级服务器还是大规模科研应用,都已经成为性价比最高的首选解决方案。本文最后,对(多核)SMP集群的编程模型及优化进行了展望。
【Abstract】 Shared memory architectures are gradually becoming more prominent in the HPC market, as advances in technology have allowed larger numbers of CPUs to have access to a single memory space. In addition, manufacturers are increasingly clustering these SMP systems together to go beyond the limits of a single system. Of the top 10 supercomputers listed in the Top500, most (if not all) are clusters of SMPs.As clustered SMPs become more prominent, it becomes more important for applications to be portable and efficient on these systems. For this pressing problem, the paper doing some research as follows:1. Detailedly described the hybrid MPI+OpenMP programming model suited for SMP cluster. It is close to the architecture of SMP cluster, combining the advantage of message passing and shared memory, could gain more efficient performance behavior. Based on this, the paper focus on the implement of the hybrid programming model, the choice of parallel grain size and loops, control of the thread number , optimize measures and its benefit relative to the MPI model. At last, it concludes that the hybrid programming model is the best choice of SMP cluster program under some conditions.2. Performance evaluation and modeling are crucial steps to enabling the optimization of parallel programs. Hybrid programming model, such as MPI+OpenMP, requires analysis to determine both performance efficiency and the most suitable numbers of processes and threads for their execution on a given platform. To study both of these problems, we propose the construction of a model that is based upon a small number of parameters, but is able to capture the complexity of the runtime system. We have combined two different techniques that includes static analysis, driven by the OpenUH compiler, to retrieve application signatures and a parallelization overhead measurement benchmark, realized by Sphinx and Perfsuite, to collect system profiles. Finally, we propose a performance evaluation measurement to identify communication and computation efficiency. We describe our underlying framework, the performance model, and show how our tool can be applied to a sample code.3. Detailedly described the process of design Hybrid parallel program and the method of experimental analysis by a idiographic example. The results reveal the reasonable of the research work. The appearance of Multi-Core architecture greatly speeds up the development of SMP Cluster. Multi-Core CPU could be treated as a simple SMP. Naturally instead of the Single-Core CPUs, embedded the Multi-Core CPUs into the SMPs will make the more complicated Multi-Core SMP Clusters. The rising complex architecture has already turned into the most cost-effective solution for in spite of the large scale scientific research applications and the server of for enterprise. This paper views the program model and optimization of the Multi-Core SMP Cluster.
【Key words】 SMP Cluster; MPI+OpenMP; Hybrid programming model; Performance evaluation and modeling; Parallel programming;