项目名称:高通量计算系统的构建原理、支撑技术及云服务应用首席科学家:李国杰中国科学院计算技术研究所起止年限:2011.1至2015.8依托部门:中国科学院二、预期目标总体目标:本项目探索面向高通量计算的系统结构新模型新机制,重点研究适应高通量并行处理计算模式的微处理器芯片和节点原型的新结构设计方法,设计可扩展、高效能、高可靠的芯片结构与系统结构,并研究面向高通量应用模式的软件支撑技术、软件设计方法与开发环境。本项目的总体目标是通过探索高通量计算的新模型、新结构和新的设计方法,为5-10年以后我国研制达到当时国际先进水平的可扩展、高效能、高可靠的高通量计算系统奠定技术基础并培养高水平人才,从而为国产高通量计算系统的研制和应用的可持续发展提供强大的后劲。同时,这些成果对未来信息技术的发展,也将产生巨大的推动作用。项目五年预期目标:本项目将在高通量计算系统构建原理、支撑技术及云服务应用的研究方面,提出一批创新方法和关键技术,在ACM/IEEE重要学术刊物和重要学术会议(如ISCA、OSDI、HPCA、PLDI、ISSCC、DSN等)上发表学术论文百篇以上,并申请国内外发明专利百件以上。研制采用基于2015年主流工艺技术的千线程芯片原型,研制满足高通量计算需求的万线程节点原型,研制移动云服务平台原型。体现出如下几个方面的创新和贡献:z面向高通量计算的可扩展、高效能并行微结构:提出大规模线程并行的体系结构,构造千线程芯片的原型,展示其可扩展、高通量的特性。在千线程芯片原型的后硅(postsilicon)调试、失效预测和检测、面向高通量应用的测试等方面提出创新方法,为确保能耗约束下的千线程芯片原型的可靠处理能力提供关键技术支持。z面向EB级数据并发处理的新型系统结构:支持海量并发请求和数据并发流动的高效能、可扩展的并行系统结构,提出面向高通量计算系统应用的计算机系统执行模型,开发支持高并发、海量数据流动、低功耗、应用感知的数据通道和存储系统。相关技术集成在一个万线程节点原型中。与现有同规模系统相比,效能比可提高1-2个数量级。z高通量计算系统的可靠性设计方法和支撑环境:提出低开销的高通量处理芯片的在线故障检测和容错方法,提出软硬件协调的高通量计算系统的失效检测和恢复方法,为高通量计算系统建立从芯片级到系统级的故障自预测、自检测、自定位、自隔离和自愈合的可靠性保障框架,并在高通量计算系统原型中集成,为数据中心应用提供透明的5S可靠性保证支持。z面向亿级并发负载的编程模型与支撑环境:提出易编程的计算并行模式和数据并行模式的编程抽象及其表示方法;提出通过编程语言和运行时系统协同映射高层编程抽象到底层执行模型,充分挖掘和利用体系结构并行性以及局部性的方法;力求为学术界和产业界提供开源的高通量计算系统编程环境;并集成到高通量计算系统原型中,通过关键应用(如移动服务)展示高通量计算系统编程模型可编程性和性能。z高通量计算系统的云计算服务环境:实现能力服务流动机制、资源虚拟化及其提供机制和面向领域的能力服务提供机制与原理,在移动服务领域示范应用,实现移动服务从“瘦客户端——〉富网络”到“瘦客户端——〉富云能力”的重大转变,并研制针对移动服务的云计算平台。z高效可扩展移动服务关键技术及应用:提出支持大规模并发的移动服务请求分发机制;提出服务资源共享与隔离机制;提出服务资源需求预测模型及智能高效的服务资源调度策略;提出移动网络服务的按需聚合、智能协同机制;建立移动网络环境下服务运行的自适应机制;提出移动服务交付机制,提供支持大规模并发的移动云服务应用示范。通过本项目的研究,也将在高通量计算系统的构建原理、支撑技术及云服务应用等方面,培养一批创新型人才。三、研究方案本项目的研究,围绕新型应用(如物联网、三网融合、云计算等)对计算机系统所带来的技术挑战和应用发展的重大需求,重点从处理芯片和系统的设计方法、配套软件、服务提供、应用模式和可靠性等方面开展工作,提出并实现有助于解决重大科学问题的高通量计算系统的创新结构和设计方案。主体研究思路是构造数据中心所需的原型硬件系统,在系统设计中将以构建海量数据的高效流动通路为核心问题开展,其核心是面向海量请求处理的芯片设计,并在此基础上构建高通量硬件研究平台。基于硬件平台的执行模型,构建适应亿级并发线程的编程语言和编程环境,进而研究云计算服务平台,包括硬件系统资源能力部署、监控、调度和可用能力的提供等,从而为上层按需聚合、智能协同的移动服务负载提供可用的服务接口。并在芯片到系统的各层面进行5S可靠性设计。这样,总体构建出面向EB级数据、亿级并发请求的新型高效能高通量计算系统结构,探索出具有普适意义的高通量计算研究方法。总体研究方案如下图所示。图1.总体研究方案从技术途径上,本项目除加强理论分析和创新外,在处理器芯片的设计中将重点依靠已有的先进EDA工具和仿真验证环境,并充分利用已经建立起来的与国内外重要半导体公司的合作关系,结合软件支撑环境、新型存储体系及可靠性计算等研究成果,以应用特征等为输入,对设计空间中的可能方案进行详尽的定量分析和模拟,从而保证新型高通量计算系统的可实现性并进行持续改进。1.面向高通量计算的可扩展、高效能并行微结构在新型高效能片上并行处理体系结构方面,一切从可在未来芯片上实现出发,随时通过各种形式的模拟、仿真和试流片进行验证和分析。这种体系结构前沿研究与芯片物理实现能力兼具的科研组织,是许多国内外大学里的研究工作所不具备的。在具体研究途径上,分析适应不同应用要求的结构特征并加以抽象提炼,进行模拟分析。同时针对高通量应用的需求,研究指令系统、互连结构、编程模型等问题,进行实验研究和性能分析。研究方案包含如下三个方面。z面向高通量应用请求驱动的可扩展处理芯片微体系结构。请求驱动的处理芯片中,请求通过I/O接收,通过增加新的硬件特征和扩展现有的指令系统等机制,强化处理芯片的I/O数据处理能力,以便高效收发请求。请求在处理芯片内部体现为线程,而高通量应用的特点是线程之间通信需求较低,因而通过提出新型的片上互连结构和片上存储系统结构等相关技术,满足应用对高通量、高效能和可扩展性设计等需求,同时避免带宽和片上资源的浪费。z面向高通量应用的高效能片上资源分配和管理机制。通过高效的运行时管理机制,以较小的开销实现线程切换和调度,最大效率的使用片上的计算资源。对于线程状态的保存,可以通过最优效能的方式存储或借助于新型的存储技术,控制对处理芯片的能耗和片上硬件资源的浪费。同时,通过片上存储资源的复用机制,利用线程之间的相似性对不同线程同时取值;而线程之间的相互干扰和对共享资源的竞争访问,则可以通过对片内共享资源或处理器核进行分区管理,使不同的线程在不同的分区内执行。z高通量处理芯片的设计、验证和测试方法。使用2015年主流工艺技术进行高通量处理芯片的结构设计,包括时钟域设计、片上核间互连、电源网络和IO设计等,完成千线程芯片原型的设计。通过设计嵌入式硬件结构(如扫描链、跟踪缓冲区等)获取对电路内部信号的实时跟踪和调试,在可接受的硬件开销下实现对芯片功能bug和电气bug的调试和定位。设计时延测量电路和时延生成电路,用于性能分级、老化引起的失效预测和检测。创新性:为了适合高通量应用的需求,并且满足请求驱动的可扩展、高效能和高可靠特征,需要设计新的指令系统结构,在新的指令类型与已有指令系统的应用层兼容方面有重要创新。另外,在微体系结构的片上资源管理和大规模线程级并行的执行模型方面,也会提出并实现适于高通量应用的新方法。最终形成的可扩展、高效能、高可靠的高通量处理芯片,也是一个重要的创新亮点。可行性:在十一五期间973项目的支持下,我们提出并实现了可执行的片上大规模并行处理芯片体系结构,以及配套的软件工具等。这些工具为本项目拟开展的体系结构研究工作建立了很好的平台。2.面向EB级数据并发处理的新型系统结构设计及评价方法在CPU核之外的数据通路上引入智能性,通过增加并发性、减少和容忍同步和调度开销、自适应调度缓解竞争来提高系统效率;通过数据驱动计算和轻量级线程机制提高系统可扩展性;通过减少额外计算和数据移动操作及结合新器件新工艺来降低系统功耗。研究方案包含如下三个方面。z研制支持高并发访问的新型数据通道和自适应的内存控制器。高效的数据通道和存储控制器是提高系统数据通量的关键所在。数据通道和存储控制器的结构和数据的组织方法要适应海量并发数据访问的压力,实现有效的调度策略,减小和容忍并发访问的延迟。研究新型存储器件与传统存储系统的优势互补和有机结合,以及有效降低存储系统无效功耗的调度方法。z处理EB级非结构化数据的文件系统。开发面向高强度负载的应用负载特征感知和预测方法。以应用负载特征和数据副本为基础,研究面向数据高效访问的副本组织、管理原理和方法。并以此来动态满足高通量应用的高性能共享需求,使得适合的数据副本在适合时刻放置在适合的层次和介质上,提高外部存储服务的效用。同时,研究面向数据高可靠性的高效数据副本机制,用以兼顾EB级海量数据和亿级并发度的环境下数据可靠性和存储成本。z应用特征分析和系统评估。针对高通量计算系统的特点,将高通量计算系统Benchmark自动识别的结果作为系统的动作状态空间集,通过统计学习的方法建立Benchmark特征指标和动作状态空间集的映射关系,以此为基础建立高通量计算系统Benchmark自动识别模型。在负载产生工具的支持下,通过重放可控制和可重复的workloadtrace,从而获得代表性高通量计算系统应用的主要性能指标,进一步构建性能分析模型。创新性:提高数据访问通路的并发性的系统设计方法,实现访存和计算融合的执行机制,开发海量数据的寻址和数据表达机制,通过综合评价辅助系统优化的方法。传统的计算机系统注重高带宽和大容量设计,忽略了对并发性的支持以及数据自身特征与数据访问的内在联系。新的系统设计将数据并发访问和有效组织作为设计重点,从结构上对提高系统的吞吐能力和降低能耗提供支持。可行性:我们在曙光高性能计算系统的研制过程中掌握了大量系统结构设计的关键技术,自主研制过通信控制器、系统网络、内存控制器、并行文件系统等,已在网络服务、网络安全、资源勘探、空天信息、非线性视频编缉、视频监控、数字风洞、核模拟、建筑设计等十多个领域应用,积累了深厚的技术基础。3.高通量计算系统的可靠性设计方法大规模高通量计算系统的可靠性设计方法不同于传统的完全依赖软件的可靠性保障方法,我们将采用从芯片到系统级的跨层的可靠性保障技术,通过芯片级的故障症状监测,硬件检查点和线程迁移技术,有效容忍片上固定型故障和瞬态故障,通过软硬件协同设计,实现高效的低开销的系统级计算和存储节点的故障自检测,自定位和自恢复,通过建立从芯片级到系统级故障的自预测,自检测,自定位,自隔离和自愈合支撑环境,即5S框架,为亿级用户和并发负载提供稳定、可靠、有质量保证的服务。研究方案包含如下三个方面:z高通量处理芯片的故障检测和容错方法。传统的检测芯片失效的方法采用双模冗余比较执行,当执行的轨迹或结果不同时就可以检测出故障。这种方法对系统吞吐率损失太大。由于大部分的芯片级故障都能被系统和软件屏蔽,因此我们采用基于系统症状的故障预测和检测方法,通过预定义一些系统级的故障症状,预测和检测故障的发生。由于大部分的芯片故障能够被系统和软件所屏蔽,因此基于系统级症状的检测方法对吞吐率的影响很小。由于高通量处理芯片上含有大量的硬件线程处理并发请求,当芯片上发生故障时,可以采用基于轻量级硬件检测点的线程迁移方法。这种方法只有当检测到故障时才会占用其他计算资源,因此有效地提高了芯片计算能力的利用率,同时保证了计算的可靠性。z高通量处理系统的失效检测和恢复方法。在芯片级容错方法的基础之上,高通量计算系统必须具备系统级的故障检测和跟踪、容错处理和自动恢复方法,保证应用程序高效、可靠、稳定的运行。完全依赖软件层次的容错方法,存在着效率低、开销大等问题。超大规模分布式的硬件系统使得软件层次的故障跟踪与诊断变得非常困难,必须借助硬件的支持。我们将采用软硬件协同的系