超级计算机的操作系统是什么呢

技术篇
超级计算机技术有三个层次:基础层、中间层和应用层 。其中,基础层主要是超级计算机的基本原理与方法,应用层涉及超级计算机使用场景,而中间层则包含了数据存储、计算、管理等多重技术支持,正是有了中间层的链接,超级计算机原理才能落实到应用问题解决之中 。

超级计算机的操作系统是什么呢


图 4 超级计算机技术分层
2.1 基础层:以异构并行为基础的超级计算机组成
(1) 基本原理
超级计算的基本原理是并行计算,其优点是可以节省时间、处理大型问题、提高准确度 。在这种方法中,整个求解问题被分成n干份,然后每个部分各由一个处理机并行计算,理论上,求解问题可以以1/n时间完成,但实际情况中,求解的问题通常不能很好地划分为各个独立部分,各个部分之间必须进行交互,包括计算中的数据传送和同步 。因此,超级计算的性能优化之一是提高并行可扩展性 。目前来看,硬件层面并行化的实现手段为:多重执行单元、连接结构、多核处理等 。
(2) 架构分类
按照并行计算方式是单指令多数据流(SIMD)还是多指令多数据流(MIMD),存储器是共享还是分布,可以将超级计算机系统的架构作如下划分:
超级计算机的操作系统是什么呢


图 5 超级计算机系统的架构分类
早期的超级计算机系统以SIMD方式工作 。由于系统中的各个处理器按阵列方式排列,所以又称为阵列处理机 。阵列处理机中的存储器可以是共享式的(SM-SIMD),也可以是分布式的(DM-SDMD) 。阵列处理机的专用性较强,一般只适合于求解某类算法,工作效率往往很高 。单向量机系统中只有一套向量部件,但存储器为向量部件、标量浮点部件和标量整数率往往和部件所共享,因此属于SM-SIMD类型 。它有较强的通用性,特别是在求解向量应用问题时,有很高的效率 。
当今的超级计算机系统大多以MIMD方式工作 。多向量机(multi vector processor,MVP)系统中有多套向量部件,但存储器是共享的,因此属于SM-MIMD类型 。对称多处理器(symmetric multiprocessor,SMP)系统也属于这一类型 。MVP和SMP又称为UMA(uniform memory access)系统,因为系统中所有处理器对任何存储单元有相同的访问时间 。与UMA系统相对的系统称为NUMA系统,在NUMA系统中,存储器是分布的,各访问时间和处理器对同一存储单元的访问时间可能是不同的,依赖于处理器在系统中所处的具体物理位置 。NUMA系统属于DM-MIMD类型 。需要注意的是,NUMA系统中的处理器可对远程存储器(即非本地存储器)以load- store指令形式进行直接访问,因此该系统有一个统一的存储器逻辑地址空间 。NUMA并行机系统按是否对Cache一致性提供硬件支持可进一步分为CC-NUMA(cache-coherent)和NCC-NUMA(non-cache-coherent) 。当存储器全由Cache组成时就变为COMA(cache only memory architecture)系统 。
如果并行计算机系统中的处理器必须以消息传递的方式访问远程存储器,就称为NORMA(no remote memory access)系统,它也是DM-MMD类型 。与NUMA系统不同,它有多个存储器地址空间,且系统中的每个处理器是一个独立的计算机 。NORMA系统按计算机间的互连紧密程度,又分为紧耦合和松耦合两种 。集群(cluster)系统是松耦合的典型代表,而MPP系统则是紧耦合的典型代表 。MPP系统使用大量的商品化处理节点,用定制的高带宽、低时延互连网络将它们连接起来,存储器在物理上是分布的,必须通过消息传递实现进程间的相互通信,是紧耦合的并行机系统,具有良好的可扩展性 。Cray T3E和IBM Blue/Gene系统是它的典型代表 。
【超级计算机的操作系统是什么呢】集群系统中每个节点是一个完整的计算机,可能没有某些外设,节点也可以是一台SMP或个人计算机(personal computer,PC)等 。它采用商品化的互连网设备,节点机通过I/O总线与网络接口相连 。每个节点机上留驻有一个完整的操作系统,并有一个附加的中间件以支持单一系统映像和高可用性 。
(3) 最新发展
自1996年以来,由于挑战性应用问题的急切需求,以及超大规模集成电路技术和网络技术的迅速发展,加快了计算机系统结构的演变和发展进程 。虽然开发指令级并行性的超标量技术日臻完善,动态预测执行、显性并行指令计算(explicitly parallel instruction computing,EPIC)等方法也已成功应用到商品化产品中,但随之而来的超标量处理器的设计越来越复杂,以至于进一步开发指令级并行性已变得相当困难 。另一方面,为了提高性能,微处理器芯片的时钟频率越来越高,导致功耗的急剧增加和组件装配密度的下降 。显然,单纯依赖提升单处理器时钟频率和一味开发指令级并行性以提高计算机性能的方法已不再经济有效,必须加强对线程级和数据级并行性的开发才能大幅提高计算机性能 。
进入21世纪之后,多线程、多核技术应运而生,将异构并行计算架构引入超级计算机中,采用专用处理器或者附属加速处理器的方式加以实现 。异构并行技术,需要有效开发计算任务的并行性,与机器不同部件支持的计算类型最佳匹配,以充分利用各种计算机资源,神威·太湖之光、天河二号与天河2A、红杉等顶尖超级计算机都采取异构并行的处理器架构 。
异构并行计算的基本工作原理是,首先析取求解任务的并行性类型,其次将具有相同类型的代码段划分到同一个子任务中,然后根据不同的并行性类型将各子任务分配到最适合执行它的计算资源上加以执行,达到使计算任务总的执行时间为最小的目的 。一个异构计算系统通常由以下三部分组成:①一组异构机器,如向量机、MIMD机、集群、图形处理机等;②将各种异构机互连起来的高速网,可以是商品化网络,也可以是用户定制的网络;③相应的异构计算的支撑软件 。
2.2 中间层:六类设备+三大网络
当前HPC的主要架构包括Cluster集群和MPP(大规模并行处理)两种,2018年6月发布的TOP500中437个超级计算机系统为集群架构、占比87.4%,其余63个均为MPP架构 。典型的HPC集群系统主要由五类计算(或网络)设备和三类网络组成 。五类设备主要是指管理节点及登录节点、计算节点、交换设备、I/O设备和存储设备 。当前有很多高性能服务器都采用CPU+加速处理器异构的方式,因此有些集群系统还包括加速节点 。
(1) 六类设备:
l 登录节点,相当于用户访问集群系统的网关,用户通常登录到这个节点上编译并提交作业,是外部访问的唯一入口,需要保证用户节点的高可用性和数据安全性,但是对计算性能要求不高 。
l 管理节点,是集群系统各种管理措施的控制节点,负责监控各个节点和网络运行状况,运行相应的管理软件 。管理节点需要有硬件冗余保护,但是对计算性能要求不高 。
l 计算节点,用于执行计算,一般可以分为瘦节点和胖节点,前者主要用于执行并行运算,成本相对 较低,还可以节约能耗、节省空间,刀片服务器已成为主流;后者用于数据划分困难或者内容需求特别大的特殊应用运算等,价格较高 。
l 异构节点,即加速节点,目前的异构节点通常同时使用CPU以及加速器设备(GPU、MIC等),或者直接采用异构处理器,以此提升并行运算效率 。异构节点也可以是计算节点 。
l 交换设备,集群节点之间需要通过网络连接在一起,节点之间的信息和数据的交换需要使用交换设备,大型集群中,计算网络的交换设备往往采用大型交换机 。
l I/O设备和存储设备,为了使任务并行执行,每台执行任务的计算节点必须能够访问同样的数据,同时计算产生的大量数据需要有较大的存储空间,用来确保数据访问的同步;另外,高性能计算机的存储系统还起到提高读写带宽的作用 。
(2) 三类网络:
l 管理网络,用于管理节点和各个计算节点、I/O节点的互联,管理网络连接的机器就是集群内部的本地机器,所以高带宽和低延迟都不需要,同时可以容忍一定的过预定率 。
l 计算网络,用于各计算节点之间的互联,是并行任务执行时进程间通信的专用网络,并行计算机的核心就是它和集群内的其他节点交换信息的能力,通常称为IPC(Inter-process Communication) 。它需要高性能的网络来进行快速交换,才能够发挥出单节点的最大性能;此外,它还决定了系统架构、性能和适合的应用等 。计算网络一般采用千兆或万兆以太网、InfiniBand网络等 。
l 存储网络,需要向高性能计算机的节点提供数据访问服务 。
高性能计算机节点规模庞大、硬件设备繁多,软件配置复杂 。随着用户数量和作业数量的增加、作业队列数目和长度的增加,有必要对高性能计算机进行更加专业系统的管理和维护以充分发挥其性能 。
超级计算机的操作系统是什么呢


图 6 浪潮集团建构的超级计算机生态结构图
超级计算涉及的关键技术非常多,包括适用于超级计算的多/众核处理器技术、高速大容量的数据缓存技术、能够处理大量并发请求的低延迟高带宽的互联网络技术、低能耗的降温散热技术、任务调度技术、大规模并行文件访问技术等等 。
更多详情可点击链接下载《超级计算机研究报告》PPT版和word版:
PPT版本报告:***/misc/article/sc-p.pdf
word版本报告:***/misc/article/sc.pdf

超级计算机的操作系统是什么呢


超级计算机通常使用专用的操作系统,这些操作系统旨在为超级计算机提供高效的资源管理和调度功能,以及支持大型并行计算应用程序的运行 。例如,许多超级计算机使用 Linux 操作系统,并使用特殊的软件堆栈来管理超级计算机的硬件资源和运行并行应用程序 。另一些超级计算机使用专门为超级计算机设计的操作系统,如 Cray 的 UNICOS 和 IBM 的 AIX 。
在超级计算机上运行的应用程序可以是任何类型的应用程序,但通常是用于科学计算、数据分析或工程计算的应用程序 。这些应用程序可以是用各种编程语言编写的,包括 C、C++、Fortran 和 Python 。超级计算机的操作系统通常提供各种工具和库,可以帮助程序员开发和调试应用程序 。
超级计算机的操作系统还为用户提供了方便的命令行界面或图形用户界面(GUI),可以方便用户管理文件、执行系统维护任务和监视系统性能 。
总的来说,超级计算机的操作系统是一种复杂的软件系统,旨在为超级计算机的用户和管理员提供高效的工具来运行和管理超级计算机 。

    推荐阅读