论文部分内容阅读
计算密集、耗时长是现代天文数值模拟的主要特点。提高模拟计算的性能,减少计算资源的消耗,在精度和性能之间取得一个最佳的平衡点,一直是天文数值模拟软件设计的关键目标。同时,建立完整的有效的非电离平衡(NEI)状态下的辐射流体数值模拟一直是天文数值模拟中的难题之一,然而传统的基于欧拉网格的非电离平衡求解过程在内存、计算和网络通讯上都带来了巨大的开销。 本文在总结以前研究工作的基础上,从非电离平衡模拟过程中制约性能的几个关键因素入手,针对多核异构体系和大规模并行环境,分别从工作流程、框架结构、数值求解三个层面对非电离平衡模拟进行了性能优化。 首先,本文分析并验证了传统算法的性能瓶颈,通过引入示踪粒子将底层的自适应网格与上层的非电离平衡计算解耦,然后基于 MapReduce模型重新设计了非电离平衡的并行求解框架。同时针对新框架中伴随而来的大量粒子的快照生成、保存以及轨迹重建等问题,设计了串行I/O、并行I/O、直接I/O以及实时的流处理模式,使其能够适应不同的计算环境和具体要求。实验表明,框架结构层次上的优化克服了非电离平衡模拟在大规模并行时的性能瓶颈,在相同的实验环境下,仅用原来1/4的计算资源,就取得了3倍以上的性能提升。 其次,为了突破传统 CPU结构在求解大量非电离平衡方程时的性能制约,本文继续提出了基于多CPU-多GPU混合异构体系的非电离平衡求解器。算法设计上,通过使用基于共享内存和任务队列的任务调度策略,最大限度地发挥了CPU和GPU各自的优势,提高了整体的资源利用率,同时根据CUDA编程模型的特点,在算法的数据结构、任务粒度以及内存访问等方面进行了专门的优化。测试结果显示基于多核异构的求解器显著地提高了非电离平衡方程的求解效率,在4块GPU设备的情况下,加速比达到了15左右。 最后,本文利用可视分析和驾驭式计算技术来优化天文模拟的工作流程。基于自适应网格的层级结构,利用快速的低精度的组合分析来指导耗时的高精度的模拟计算。同时又根据天文数值模拟的特点,设计了参数分类和调整接口,进而帮助天文学家高效准确地把握并控制数值模拟过程。本文提出的可视化驾驭计算环境有效的加速了非电离平衡模拟生命周期中的模型建立、电离状态分析等过程,并在参数调整、数值误差控制等方面辅助用户决策。 文中所有实验都是基于实际的天文数值模拟,文中还对所有实验结果的精度进行了详细的对比分析。此外,本文对上述各类方法在其他问题的适应性上也进行了详细的分析和验证,相关实验显示本文的方法同样能够大幅度提升核合成、光谱计算等常见天文计算的性能,以及加速星风模型的探索和确立过程。