论文部分内容阅读
随着暗物质的发现,暗能量的提出,特别是宇宙加速膨胀的发现,宇宙学正处于快速蓬勃发展的阶段,逐渐发展成一门精确的宇宙学[1]。由于宇宙高度非线性,长时间演化等特征,宇宙模拟计算一直是超级计算领域热门的研究课题,二者互相推动进步与发展。在异构计算领域,由于charm++编程模型有效提高了并行可扩展性和运行时的自适应性[2],使得charm++成为研究宇宙模拟的有效编程模型。但由于charm++面向对象的特点和消息驱动方式,使用charm++编程模型的门槛也随着提高。考虑到并不是所有使用charm++的用户都是并行计算领域的专家,所以一个基于charm++,面向大规模异构环境的并行框架软件—SCTangram成为研究宇宙模拟的高效框架。 面对异构集群硬件环境的日益复杂和超级计算机的计算性能呈现指数增长,在异构环境下,如何在保证SC_Tangram框架软件的高运行性能和高可用性的同时,提高框架可扩展性,降低在框架中布置实现应用的技术门槛,缩短应用程序的研制周期成为我们关注的焦点。通过使用领域特定语言可以有效屏蔽异构环境复杂度和框架底层设计复杂度,提高框架的易用性,提升开发人员的编程效率以及增进开发人员与领域专家的有效沟通。考虑到并不是所有使用SC_Tangram框架的用户都是并行计算领域的专家,将领域特定语言应用在框架中成为解决上述问题的关键。 本文在大规模异构环境下,基于并行框架软件SC_Tangram开展领域特定语言的研究,并将领域特定语言应用在宇宙模拟领域中。本文主要工作如下: 第一、SC_Tangram框架的应用配置工具的研制。本文基于框架提出了一个领域特定语言的高级抽象,为框架提供更加易用的高级接口。利用图形界面来进一步抽象底层框架中的DSL,设计并图形化配置工具,方便框架用户书写应用的配置文件。通过实例测试,发现可以有效降低在框架中实现应用的复杂度,并对框架的组件化协作开发提供支持。 第二、宇宙学流体计算的领域语言编程及异构代码自动生成。本文将SC_Tangram框架中的主要应用—WENO格式有限差分的宇宙学流体计算,利用领域语言框架PHYSIS框架实现从简洁的模板化领域语言到异构代码的自动生成,以便加速更多的宇宙模拟计算应用。在超级计算机ERA[3]上的测试结果表明,自动生成的异构代码具有良好的可扩展性,性能达到人工优化代码的72%,可为相关宇宙模拟的异构计算代码的自动生成提供借鉴。