论文部分内容阅读
作为当代信息技术发展最高水平的代表之一,超级计算技术已成为大系统、大工程和大科学研究中必不可少的计算工具。然而,随着超级计算机的计算能力逼近百万亿次,以及异构系统和并行技术的快速发展,如何在保证大型应用软件稳定性的前提下,开发适用于超级计算机和异构系统的并行程序成为亟待解决的挑战性问题。目前备受关注的软件编程框架成为解决上述问题的关键。中国科学院计算机网络信息中心基于Cactus框架和Charm++通信技术开发了并行框架软件SC_Tangram。其中,Cactus框架是基于构件的软件思想和MPI通信实现的,为多组件协作开发和跨平台并行应用设计提供了开发平台。Charm++是一个并行C++库,采用消息驱动的编程模型实现了虚拟化处理器的概念。Charm++的过分解、可迁移和异步调用特性使其成为强大的自适应运行时环境,为负载均衡和容错提供了支持。 地球系统模式作为研究全球气候变化的主要工具,已成为超级计算的重要应用领域之一。CAS-ESM是中国科学院大气物理研究所研发的一套地球系统模式,主要由大气、海洋、海冰、陆冰和陆面五个分量模式组成。作为CAS-ESM中的海洋分量,海洋环流模式LICOM被广泛应用于海洋研究和气候预测。随着预测精度的不断提高,LICOM程序的开发、维护和扩展均面临极大挑战,如何有效利用并行编程框架来实现LICOM成为急需解决的重要问题。 基于上述考虑,本文在并行编程框架SC_Tangram上进行了LICOM的并行实现。由于LICOM内部程序关系和通信关系复杂,且LICOM采用MPI通信,而SC_Tangram基于Charm++通信,直接在SC_Tangram上进行LICOM的重构具有很大难度。此外,考虑到Cactus框架与SC_Tangram的框架结构相似,且Cactus框架与LICOM程序均使用MPI通信,则本文先在Cactus框架上实现LICOM,再结合Cactus框架上的实现结果,在SC_Tangram框架上实现LICOM的重构。因此,本文的工作主要为以下两部分: (1)根据Cactus框架对LICOM进行结构上的调整,改进了处理器和数据的划分方式,从而增强了程序的健壮性;实现了程序中计算模块和通信模块的分离;扩展了Cactus框架,使其支持数据分发和接收的功能;设计了程序的完整执行流程,最终在Cactus框架上以一个组件形式实现了LICOM的重构。 (2)使用Charm++的底层通信方式为SC_Tangram框架扩展了关键字,使其支持数据分发、数据接收功能,并将LICOM程序在Cactus框架上的重构组件进行迁移,从而实现了基于SC_Tangram框架的LICOM程序。 本文最终实现了LICOM程序在SC_Tangram框架上的重构工作,保证了程序的正确性。本文的工作不仅为将来CAS-ESM其他分量模式的重构打下基础,还促进了LICOM程序的理论研究者和软件开发者工作的分离,同时也为发展中科院地球系统模式并行框架软件做出了贡献。