论文部分内容阅读
随着多核芯片和集群技术的发展,高性能计算技术在国内外科学研究、工程计算以及军事技术等方面的应用取得巨大成就。高性能计算为以高性能计算机或多核CPU集群为平台的大规模并行计算,在我国也取得很大成果,并且,有力地推动了交叉学科的发展。其中共享内存并行计算机体系结构(SMP)高性能计算机及其集群逐渐在并行计算领域占据主导地位。然而,为适合高性能计算的多核硬件环境,软件应用开发和软件并行优化技术还需要更深入的研究,以提高多核资源的利用率、程序的可编程性和易维护性。 地震工程模拟开放系统OpenSees(Open System for Earthquake EngineeringSimulation)是美国加州伯克利分校为主研发的用于结构和岩土方面地震反应模拟的开源有限元软件。它主要为建筑结构和岩土工程进行建模、模型线性或(非)线性(静)动力分析,即模拟结构对于动载荷的响应(如位移、应力等的时间历程)。 本文首先针对OpenSees并行版本OpenSeesSP在Linux高性能集群环境中有限元分析时间长及多核资源利用率低等问题进行分析,结合使用并行程序性能分析工具TAU(Tuning Analysis Utilities)定位其性能瓶颈。定位发现OpenSeesSP程序性能的瓶颈在于程序MPI通信、刚度矩阵组集计算及求解线性方程组过程。然后,本文重点在于通过分析该程序的MPI通信过程和刚度矩阵组集计算过程,结合该程序的多核硬件运行环境,从而设计并实现在SMP集群环境下对OpenSeeSP进行基于MPI和OpenMP的混合并行性能优化研究和实现。MPI是集群计算中广为流行的分布式内存结构消息传递并行编程模型。但是在很多情况下,采用纯的MPI消息传递编程模式并不能在这种多处理器构成的集群上取得理想的性能。OpenMP是共享存储编程的实际工业标准。而在SMP集群环境下为了适应充分利用SMP多核计算机集群的体系结构特点,即节点间分布存储,节点内分布存储,因此选用OpenMP+MPI这种混合编程模式提供结点内和结点间的两级并行,有效的改善集群的性能。 本文最后通过使用并行程序开源性能分析工具TAU(Tuning and AnalysisUtilities)对优化前后的OpenSeesSP程序进行源代码插桩(Source CodeInstrumentation),获取它们执行时的性能数据,并通过对获取的性能数据进行分析进一步验证MPI+OpenMP模式及相应系统的性能。经性能结果分析表明,本文应用程序并行化以后,性能得到明显提升。