论文部分内容阅读
未来高性能计算机的发展趋势是在单个计算节点之内使用多个加速部件,更为复杂的体系结构使得通信效率成为了获得更高性能的主要因素之一。因此本文基于通信优化这一关键问题,进行了新型的单节点多MIC协处理器平台上的并行编程研究。首先,为了实现单节点内多个协处理器与主机端CPU的高效通信,本文对比研究了三种编程方式,包括基于对等模式的MPI-Open MP编程方法,基于卸载模式的传统的pragma编程方法,以及本文新提出的基于卸载模式的COI-SCIF编程方法。MPI-Open MP方式的编程及优化与传统的CPU集群相同;第一种卸载模式的编程方法较为通用,是由编译器的pragma指令实现;而第二种卸载模式的方法结合使用了Intel提供的底层接口coprocessor offload infrastructure(COI)和symmetric communication interface(SCIF),以实现低延迟的通信。虽然以pragma为基础的编程方式更为简单,但COI-SCIF的编程方式有以下的优点:卸载代码段开销更低,数据传输带宽更高,计算与数据通信能够实现更好的异步重叠等。底层的COI-SCIF编程方式可以更细粒度的控制数据传输,与对等模式的MPI-Open MP方式相比也显示了很好的性能效果。其次,考虑到整个异构集群上的并行编程和通信优化,针对集群中多种设备高效协同计算的问题,本文面向Stencil结构化网格类计算,研究了一种基于高效通信的混合编程模型。通过结合使用MPI、Open MP、COI、SCIF等多种编程技术,完成模型的整体设计,提出了一种较为合理的负载均衡策略,并通过任务划分、通信隐藏等技术实现层次流水线式通信优化,达到多层次高效率的通信计算目标。本文的所有实验都是基于一个以Stencil结构化网格计算为基础的真实三维应用实现;实验平台为当前排名世界第一的天河-2号超级计算机。通过详尽的测试,分析对比了单节点上MPI-Open MP、pragma和COI-SCIF这三种不同编程方式的通信带宽与性能,展现了基于系统级接口的COI-SCIF编程模式的优势;多节点上,首先对基于高效通信的混合编程模型的负载划分策略进行测试与验证,得出了最优的负载划分结果;在最优负载设置下,分析对比应用通信优化策略前后的性能结果;本文在最后给出了上述编程模型指导下实现、在天河-2号上大规模长时间模拟,所得出的病态心脏细胞纳米精度的钙动力学模拟结果。本文所进行的基于通信优化的单节点多MIC协处理平台上的混合编程研究,不仅为单节点-多加速器这类新兴体系结构提供了进一步深入研究的经验与参考,同时也为未来天河-2号超级计算机的高效充分利用提供了良好开端。