2015年高性能计算中间件技术研讨会(HPCMid)于11月9日在江苏省无锡市太湖皇冠假日酒店蠡湖厅顺利召开。会议邀请到13位专家作精彩报告,70多位来自国内外高性能计算领域的同行参加了会议。在Panel讨论环节,会议特邀嘉宾中科院计算技术研究所所长孙凝晖研究员、中科院计算机网络信息中心副主任迟学斌研究员、北京应用物理与计算数学研究所副所长/中物院高性能数值模拟软件中心主任莫则尧研究员同参会人员围绕中间件技术这一主题展开了热烈的讨论。
上午的会议由中科院数学与系统科学研究院的张林波研究员主持。
美国阿贡国家实验室的Pavan Balaji教授作了题为《Towards a New Era of Parallel Processing with MPI and Threads》的报告。报告首先展望了未来十年美国的高性能计算机发展趋势,节点数维持相对稳定(O(10,000)~O(100,000)),节点内核数不断增加(O(100)~O(10,000))是发展趋势,MPI进程+线程混合并行是应对这种趋势的技术途径。报告分析了若干应用程序进程线程混合并行低效的原因,随后介绍了他们的两个应对方案。第一个工作是MPI实现的优化,其主要思想是通过更细粒度的线程锁降低MPI通信时的线程竞争。第二个工作是ULT(User Level Threads)方面的工作。ULT是一种轻量级线程,多个ULT能映射至一个OS线程。ULT能更好地实现计算与通信重叠,适合于进行大量任务的细粒度并行。
美国俄亥俄州立大学的鲁小亿博士作了题为《Designing High-Performance Middleware for HPC and Big Data Applications》的报告。报告人首先给出了统一HPC和Big Data的中间件架构图,随后逐一介绍了MVAPICH2/MVAPICH2-X应对Exascale计算瓶颈的研究进展。第一个工作是MVAPICH2在大规模inter-node及intra-node通信的优化工作;第二个工作是MPI+CUDA,通过GPU-Direct RDMA实现GPU与GPU间的直接通信,通过拓展的MPI和CUDA接口向用户提供这些功能;第三个工作是对Hybrid MPI+PGAS的支撑(注:PGAS是一种近两年逐渐兴起的分布式共享内存编程模型,与MPI的分布式内存编程模型相对应),通过Unified MVAPICH2-X Runtime,支持Hybrid MPI+PGAS编程模型。其它工作包括基于RDMA(远程直接数据存取)的HDFS(Hadoop分布式文件系统)设计、基于RDMA的MapReduce、OSU的High-Performance Big Data(HiBD)项目等等。
中国科学技术大学的张昱副教授作了题为《面向多核的可伸缩确定性并行系统》的报告。报告人首先提出要通过一个确定性内存模型中间层向上层应用程序屏蔽操作系统进程/线程调度的不确定性。随后介绍了SPMC(Single-Producer Multi-Consumer)确定性共享虚拟内存编程模型,并介绍了实现SPMC模型的Lazy-tree页面映射机制。最后介绍了基于SPMC内存模型的几个确定性并行编程库,包括确定性多线程编程库DetMP、确定性流水线并行编程库Dstream、确定性MapReduce库等。
北京应用物理与计算数学研究所的杨扬博士作了题为《面向结构网格stencil计算的领域编程语言》的报告。报告人指出设计跨平台的领域编程语言的目的是为了向领域用户屏蔽异构。其设计的领域编程语言面向结构网格Jacobi型stencil计算,处理单处理器单个网格片上的计算,能够与编程框架结合,支持用户快速编写跨平台的异构加速应用程序。报告人设计的源到源编译器能将模板语言代码翻译成能在CPU、GPU或MIC上运行的代码。目前该工作已应用在三维时域全波电磁模拟软件JEMS-TD中,帮助该软件实现了异构加速并行。
中科院计算技术研究所的贾海鹏博士作了题为《OpenBLAS:国产开源高性能数学库及其关键优化技术》的报告。报告人首先介绍了开源blas库OpenBLAS的研发背景与当前进展,随后介绍了开发OpenBLAS中所使用到的优化代码自动生成技术AUGEM(Automatically Generate Efficient Matrix code)。该技术以DLA的C语言内核为输入,生成高效的汇编代码。该技术的出发点是凝练出BLAS实现代码中的六种代码片段模式,然后对这六种模式分别实现高效汇编代码,最后从C语言内核中进行模式识别并进行代码替换。
中科院软件研究所的张健研究员作了题为《软件测试与静态分析的自动化工具》的报告。报告人介绍了白盒测试、组合测试、基于模型的测试。Jesmet工具是报告人研制的扩展有限状态机模型测试工具,它以EFSM(Extended Finite State Machine)模型为输入,输出测试序列。Canalyze/Melton是报告人研制的C程序代码静态分析工具,它能检测浮点数计算异常。
下午的会议由北京应用物理与计算数学研究所的莫则尧研究员主持。
中科院数学与系统科学研究院的冷伟博士作了题为《有限元代码自动生成》的报告。报告人回顾了DealII、Libmesh、FEaiCS、PHG等有限元软件的发展现状,随后介绍了其研制的有限元代码自动生成系统。该系统以有限元问题描述(几何区域、PDE、边界条件)为输入,输出有限元代码(PHG、DealII或Libmesh)。报告人最后展示了该代码生成系统在地球发电机模型数值模拟程序开发上的应用。
湖南大学的李肯立教授作了题为《基于指导语句的异构协同并行编程框架的研究与实现》的报告。该工作设计并实现了一个适应于异构系统的基于指导语句的协同并行编程框架OpenHCPP。该框架包括一个运行时系统和源到源编译器两部分,其中运行时系统负责任务调度、设备管理、存储管理、传输优化,源到源编译器包含指导语句处理器和计算内核生成器。
中科院数学与系统科学研究院的卢本卓研究员作了题为《生物大分子的网格生成和可视化研究》的报告。报告人首先介绍了生物大分子网格生成技术,生物大分子表面使用Gaussian surface方程描述,生成网格的第一步是求解该方程得到分子表面的网格点,第二步是对这些网格点进行三角形剖分得到表面网格。另一个生物大分子网格生成技术结合了四面体网格的局部二分加密以及surface cut技术,从最初的粗网格得到逐步贴近生物分子表面的细网格。报告人最后介绍了生物大分子模拟可视化技术,其核心技术是celltree方法。
清华大学的黄小猛副教授作了题为《高分辨率海洋环流模式的计算与I/O优化》的报告。第一个优化工作是海洋环流模式正压求解器使用切比雪夫算法代替PCG,避免了全局通信,得到了数倍的加速效果。第二个优化工作是I/O方面的优化,通过选取一定比例的计算节点专职进行I/O,实现了计算与I/O重叠。
华东师范大学的钱卫宁教授作了题为《可扩展事务处理系统:研究问题与进展》的报告。报告人首先介绍了事务处理系统所解决的问题、“现象级”事务处理系统的性能和可靠性需求,随后介绍了可扩展的数据管理系统Master-slave架构,以及可扩展事务处理中的研究问题。
清华大学的翟季冬博士作了题为《基于内存检查点技术的容错HPL研究》的报告。针对大规模并行计算时系统无法长时间稳定运行的问题,该工作在HPL程序内存中维护一份内存备份以及RAID-5校验码,并对进程进行分组,当一个进程失败时,能从其所在组的其它进程恢复失败进程的数据。
中物院高性能数值模拟软件中心的闫洁博士作了题为《以网格片为中心的数据驱动并行计算模型及其应用》的报告。报告人提出了“Patch-centric抽象”这一概念,即一个Patch拥有数据,能够在其上运行Patch-Programs,通过send/recv数据流与其它Patch进行交互。基于“Patch-centric抽象”能同时支持BSP计算和数据驱动计算,报告人设计了支持Patch-centric数据驱动计算的运行时系统并集成至JASMIN/JAUMIN框架。该运行时系统能支持多线程数据驱动计算,通过结构/非结构Sn粒子输运软件JSNT-S/JSNT-U在天河二号上的测试验证了该运行时系统的高效性。报告人同时还汇报了基于粗化图模型的数据驱动计算方面的工作。
研讨会的最后环节是panel讨论,三位嘉宾分别是孙凝晖研究员、迟学斌研究员和莫则尧研究员,由张林波研究员主持。
孙凝晖研究员指出高性能计算软件的构建现状是中间件模块模糊,无层次化的软件开发。他提出要在计算机体系结构和应用程序之间凝练共性层,形成HPC中间件,并且要借鉴大数据中间件发展的启示,发挥社区的力量。
迟学斌研究员指出高性能计算中间件首先要解决能用的问题,即要帮助领域用户把当代高性能计算机用起来。
莫则尧研究员指出中间件是沟通计算机和应用软件的桥梁,其核心作用是突破性能墙和编程墙。他进一步阐述了中间件的内涵,包含面向用户的“屏蔽并行实现”以及面向计算机的“跨平台运行时效能优化”两大方面共十个技术点。
随后,与会专家与三位嘉宾展开了热烈的讨论,话题包括中间件的推广经验、中间件与应用程序的界限、经费支持、开源与否等方面。最后,三位嘉宾分别用一句话进行总结,孙凝晖研究员提到“中间件是中国HPC的未来”,迟学斌研究员提到“要做出实用性成果”,莫则尧研究员提到“让中间件成为(计算机和应用软件之外的)第三股力量”。
本次高性能计算中间件技术研讨会为国内同行提供了一个开放的技术交流平台。通过此次研讨会的交流与讨论,“高性能计算中间件”的概念更加明确,内涵更加清晰,促进了国内同行的交流与合作,取得了良好效果。