千万亿次计算时代意味着什么?所谓千万亿次计算是指每秒进行1千万亿次双精度浮点运算,这是当前中国服务器企业研制的最快超级计算机曙光5000A 系统的6倍。如果说在10万亿次计算时代我们可以基于商品化处理器部件、交换部件、存储部件、开源操作系统等构建工业标准化机群来满足我们在计算密集、I/O密集等多个领域的应用需求,那么在未来的几年,伴随应用对计算能力的进一步需求,例如,在生物医学领域进行蛋白质电子态的计算、药物发明中的遴选过程、蛋白质折叠等需求、航空航天制造领域进行的发动机燃烧模拟和机翼设计模拟、气象领域的短期天气预报、局部突发性灾难预报(如洪水、海啸)、核能领域的完全等离子分析、纳米技术领域的复合材料结构分析和功能预测、新材料的发明、天体物理学领域的超新星三维模拟等这些应用都需要持续100 T flops以上的计算性能,有些应用甚至需要1Petaflops的持续应用性能,我们再基于机群架构来构建高性能计算机,将面临扩展性、可靠性、功耗、均衡性、可编程性、管理复杂性等诸多挑战。
IBM PERCS系统基于Power7微处理器、AIX操作系统、通用并行文件系统(GPFS)、IBM并行计算环境及互联和存储子系统进行开发。当前 IBM PERCS 项目已经公布的几个研究方向有:片上多处理器(CMP);智能内存:在每个DIMM内存条上增加一个智能Hub芯片,实现预取、Scatter/Gather、重排序、缓存等功能;全局名字空间支持;混合型DSM:通过 X10编程语言实现,支持OpenMP程序;异步SMP:简化目前SMP硬件一致性协议,使之更接近软件的应用模式;片上FIFO:将同步和数据传送结合,减少应用中的延迟;基于目录的cache一致性协议等。PERCS的存储系统实现了巨大的UMA结构的SMP系统,同时在该系统中IBM计划开发高效用软件和开发工具以提高开发人员的生产率。
在解决功耗方面,除采用FPGA、液体冷却、低功耗专用芯片、芯片级冷却等技术以外,一些系统级节能技术也有望解决高效能计算机能耗问题,包括:基于负载情况动态调整系统状态、实施部分节点或部件的休眠;根据各进程能耗的不同对CPU任务队列进行调整,如将一些产生较多热量的任务从温度较高的CPU上迁移到温度较低的CPU上从而实现能耗的均衡;在海量存储和文件系统方面,包括聚合一组存储设备的容量和I/O带宽,为高效能计算机提供全局名字空间和高I/O性能,以及采用面向对象存储技术,将存储设备与文件系统的接口由原来过于简单的块访问接口变成对象访问接口等以开发高性能并行文件系统和相应支持大规模共享文件系统的存储系统;在并行编程模型方面,当前并行程序设计语言主要有 OpenMP、MPI、X10、PGAS、HPF等。基于共享存储的OpenMP语言的主要问题是没有数据局部性的支持,Clustered OpenMP也只能适应粗粒度并行的程序。MPI模型的问题在于短消息性能不好和可编程性差, HPF由于适应面窄也面临淘汰。近年来,分割全局地址空间模型(Partitioned Global Address Space Model,简称PGAS)广受关注。PGAS既有共享内存编程模型的易编程性,又能让程序员控制数据的分布以达到和消息传递编程模型媲美的性能。