本文描述了神威E级原型机的互连网络和消息机制.神威E级原型机是继神威蓝光、神威?太湖之光之后神威家族的第三代计算机.该计算机作为一台E级计算机的原型机,峰值性能3.13PFlops,其最大的特色之一就是采用28Gbps传输技术,设计开发了新一代的神威高阶路由器和神威高性能网络接口两款芯片,在传统胖树的基础上,设计了双轨泛树拓扑结构,定义实现了新颖的神威消息原语和消息库,实现了一种基于包级粒度动态切换的双轨乱序消息机制,通信性能比神威?太湖之光互连网络提升了4倍,为神威E级计算机互连网络的研制奠定了基础.
近年来,人们越来越关注计算机对数据密集型课题的处理能力.宽度优先搜索(Breadth First Search,BFS)是一种典型的数据密集型课题,被广泛应用于多种图算法.Graph 500 Benchmark以BFS搜索为核心算法,已经成为评价计算机处理大数据能力的基准.神威太湖之光超级计算机从2016年6月至2017年11月连续4次荣登Top 500榜单榜首,其处理器SW26010是首款由我国自主研制的异构众核处理器.文中研究了如何利用SW26010的体系结构特点加速BFS算法的问题,在SW26010上实现了基于单个核组的方向优化的融合BFS算法,使用字节图(bytemap)释放内层循环依赖性,利用异步DMA隐藏计算与便签存储器的访问开销,利用异构架构协同运算并对图做预处理.最终,以Graph 500作为基准测试程序处理scale为22的图,SW26010处理器单核组BFS的性能达到457.54MTEPS.
大规模异构众核计算机系统具有计算能力强、性能功耗比高等突出优点,已成为超级计算机的发展方向,但其复杂的异构结构和庞大的系统规模,也使系统的可用性面临巨大挑战,因此研究面向大规模异构众核系统的轻量级容错技术具有重要意义.针对传统基于检查点的系统级容错开销过大的问题,在Parallel C语言中设计并实现了故障局部感知的轻量级降级、编译指导与自动分析的检查点等语言支持的容错机制,兼顾了好用性和高效性.局部故障感知的轻量级降级结合动态任务调度框架实现,支持众核系统,可扩展到百万以上并行规模;编译指导与自动分析的检查点通过程序员插入简单的编译指示,由编译器进行分析,提示不需要保留的数据,可有效降低保留恢复的数据量.神威太湖之光超级计算机上的测试数据表明,两种容错措施相对于传统容错方法效果良好,轻量级降级的容错开销小于1%,相对于传统回卷容错方法单次故障执行时间可减少3.5%以上,编译指导与自动分析的检查点在典型应用中最多可将保留量降低至1/10,具有很好的实用性.
Heterogeneous many-core architecture,with ultra-high performance to power consumption ratio,has become an important trend of supercomputer architecture development.However,many-core systems always have more complex parallel hierarchy and memory hierarchy,hence posing a great challenge to programming and optimization.Therefore,the study of many-core-oriented parallel programming techniques is of great significance,since it can reduce the difficulty of parallel programming on domestic many-core systems and improve the performance of parallel programs.This work proposes a multi-model parallel programming model upon unified architecture,including heterogeneous-fused speedup programming model and isomorphic independent programming model.Based on this model,Parallel C programming language is designed to effectively describe heterogeneous parallelism of the domestic many-core system.Compared to MPI+X programming pattern,programming with Parallel C has a global perspective,as well as advantages in the hierarchy locality description,one-side message passing and multi-core applications compatibility.The Parallel C compiler system constructed with Open64 fully supports the heterogeneous-fused speedup programming model and isomorphic independent programming model.In addition,the design and implementation of data layout and automatic DMA optimization,compiler-directed thread proxy optimization and topology-aware collective communications optimization are presented.The performance of the proposed method is evaluated with the Miro Benchmark and practical applications on Sunway Taihu Light computer system.Experimental results show that Parallel C language and the compile system have good performance and scalability to effectively support large-scale applications.
The design of efficient dynamic task scheduling and fault‐tolerant mechanism is an issue of crucial importance in high‐performance computing field .Most existing methods ,however ,can hardly achieve good scalability on large‐scale system .In this paper , we propose a scalable dynamic task scheduling model via N‐level queuing theory ,which dramatically reduces the programming burden by providing programmer with concise parallel programming framework .On one hand ,we utilize the Poisson process theory to analyze the average wait time of tasks ,and then decide the task layers according to threshold .On the other hand ,we reduce the fault tolerance overhead using region‐aware light‐weight degradation model .Experimental results with Micro Benchmark on Bluelight system with 32 768 cores show that our method achieves good scalability when the tasks take 3.4 s on average and the overhead is just 7 .2% of traditional model .Running on 16 384 cores ,pharmacological application DOCK achieves performance improvement by 34.3% with our scheduling .Moreover ,the results of DOCK show our fault‐tolerant model achieves 3.75% ~ 5.13% performance improvements over traditional mechanism .
高性能计算机系统规模的持续增大使通信墙问题越来越突出.逻辑进程与物理拓扑的映射优化方法能够提高应用的通信效率,已经成为高性能计算的研究热点之一.传统的进程映射优化模型由于映射粒度过细,导致映射效率低,且易破坏通信密集的进程簇的整体性.为此,文中提出了一种聚合的二次分配问题(Aggregated Quadratic Assignment Problem,AQAP)模型,并以AQAP模型为指导,提出了一种新颖的基于聚类分析的进程映射优化方法.该方法首先使用谱聚类算法对进程通信模式进行聚类分析,然后采用自适应聚合进程映射策略实现进程簇到物理拓扑的映射,最后使用聚合Pair-Exchange算法对进程簇映射进行进一步优化.文中提出的优化方法首次将谱聚类分析应用于进程映射问题,可以有效减少远距离通信,增强通信的局部性.NPB基准程序及两道实际应用的实验结果表明,文中提出的进程映射优化方法可以使程序获得明显的性能提升,优于现有的基于Pair-Exchange以及基于图划分的进程映射方法.
MPI以其高效通用的特点成为当今高性能计算领域的主流编程方式.本文深入分析了最新的MPI3.0标准的主要新增功能特点,总结了当前MPI关键技术研究的现状,并对未来MPI研究的发展趋势进行了展望.
There is no operation system running on slave processors in isomerous multi-core architecture system,so user’s applications cannot do input and output operations,such as read/write file and printf.In order to solve the I/O problem,this paper researches compiler-directed I/O agent technique,that let the master core do I/O operations for the slave cores.Through I/O information communicating,interrupting functions,this paper realizes the I/O agent and combination optimization technique,which can gather the continuous I/O operations in slave processor codes and only do once agent.Experiments prove that the performance of compiler-directed I/O agent is about five times higher than system’s I/O agent.
UPC全局共享编程模型在大规模并行计算机上的传统实现存在一定的性能缺陷,本文基于底层局部共享的特点引入了节点共享描述的概念,实现了多层次的共享描述机制.提高了UPC的可编程性及应用程序性能.
GASNet为UPC提供了方便的单边消息支持.但是,基于MPI实现的GASNet系统存在明显的性能缺陷,本文利用并行计算系统基于底层网络的高性能通信接口对GASNet系统进行了改造,并引入了主动线程机制,使单边消息性能有了很大的提高.
UPC是一种全局地址空间语言,既具有共享型语言编程的方便性,又具有消息传送型语言的高性能,近年来的相关研究非常活跃.本文主要介绍并行语言研究领域UPC语言研究的进展,并对其发展前景进行了展望.