高性能计算(HPC)是指通常使用许多处理器(作为单台机器的一部分)或组织成集群的多台计算机(作为单一计算资源运行)的计算系统和环境。运行在高性能集群上的应用程序一般采用并行算法将一个大的公共问题按照一定的规则划分成许多小的子问题,在集群中的不同节点上进行计算,而这些小问题的处理结果,经过处理可以合并到原始问题的最终结果中。由于这些小问题的计算一般可以并行进行,因此可以缩短问题的处理时间。在高性能集群的计算过程中,所有节点协同工作。他们分别处理大问题的一部分,并在处理过程中根据需要交换数据。每个节点的处理结果都是最终结果的一部分。高性能集群的处理能力与集群规模成正比,是集群中各节点处理能力的总和。但是,这样的集群一般不具备高可用性。对高性能计算进行分类的方法有很多种。这里我们从并行任务之间的关系角度对高性能计算进行分类。1.高吞吐量计算(High-throughputComputing)有一类高性能计算,可以分为若干个可以并行的子任务,每个子任务之间没有任何关系。因为这类应用的一个共同特点是在海量数据上搜索一些特定的模式,所以这类计算被称为高通量计算。所谓的因特网计算就属于这一类。按照Flynn的分类,高吞吐量计算属于SIMDSingleInstruction/MultipleData,单指令流-多数据流)的范畴。2.分布式计算另一种计算类型与高吞吐量计算正好相反。虽然它们可以分成几个并行的子任务,但是子任务之间是密切相关的,需要大量的数据交换。按照Flynn的分类,分布式高性能计算属于MIMD(MultipleInstruction/MultipleData,多指令流-多数据流)的范畴。HPC系统有多种类型,从大型标准计算机集群到高度专业化的硬件。大多数基于集群的HPC系统都使用高性能的网络互连,基本的网络拓扑和组织可以使用简单的总线拓扑。HPC系统由计算、存储、网络、集群软件四部分组成。高性能计算HPC系统有哪些技术特点?HPC系统目前主流处理器为X86处理器,操作系统为Linux系统(包括Intel、AMD、NEC、Power、PowerPC、Sparc等),构建方式采用刀片系统,互联网使用IB和10GE。HPC集群中的计算节点一般分为三类:MPI节点、胖节点和GPU加速节点。双路节点称为瘦节点(MPI节点),多路节点称为胖节点;胖节点配置大容量内存;集群中的胖节点数量取决于实际应用需求。GPU的英文全称是GraphicProcessingUnit,中文翻译是图形处理器。在浮点运算、并行计算等一些计算中,GPU可以提供CPU几十倍甚至上百倍的性能。目前GPU厂商只有三个:NVIDIAGPU、AMDGPU和IntelXeonPHI。可供选择的GPU类型较少。NVIDIA的GPU卡分为显卡和计算卡。显卡包括NVIDIAK2000和K4000,计算卡K20X/K40M/K80。Intel的GPU是IntelXeonPhi系列,也就是计算卡。主要产品有披5110P、披3210P、披7120P、披31S1P。AMD的GPU是图形和计算的结合。主要产品有W5000、W9100、S7000、S9000、S10000。如何衡量高性能计算的性能指标?CPU性能计算公式:单节点性能=处理器频率*核心数*单节点CPU数*单周期指令数。单周期指令数=8条(E5-2600/E5-2600v2/E7-4800v2)或16条(E5-2600v3);节点数=峰值浮点性能要求/单节点性能。延迟(内存和磁盘访问延迟)是计算的另一种性能度量。在HPC系统中,一般的延迟要求如下:1MFlops等于每秒一百万(=10^6)次浮点运算;一个GFlops等于每秒1亿(=10^9)次浮点运算;一个TFlops等于每秒一万亿(=10^12)次浮点运算,(1tera);一PFlops等于一千万亿(=10^15)次浮点运算;一个EFlops等于每秒十亿(=10^18)次浮点运算。测试工具——什么是LinpackHPC?LinpackHPC是一个性能测试工具。LINPACK是Linearsystempackage的缩写。主要始于1974年4月,美国阿贡国家实验室应用数学研究所所长吉姆·普尔在一系列非正式讨论中进行评估,建立了一套专门的解决方案。线性系统问题的数学软件的可能性。业界还有很多其他的测试基准,有的是基于实际应用类型如TPC-C,有的是测试系统某一部分的性能,如测试硬盘吞吐量的IOmeter和测试内存带宽的stream.迄今为止,Linpack已被广泛用于解决各种数学和工程问题。也由于其计算效率高,IMSL、MatLab等数种数学软件被引用来处理矩阵问题,可见其在科学计算中的举足轻重地位。Linpack现已成为测试高性能计算机系统浮点性能的世界领先基准。利用高性能计算机,采用高斯消元法求解N元稠密线性代数方程组的检验,并对高性能计算机的浮点性能进行了评价。双列直插式内存(DIMM)有多少种类型?双列直插式内存(DIMM)包括UDIMM内存、RDIMM内存和LRDIMM内存。可以使用三种类型的DIMM内存。在处理较大的工作负载时,无缓冲DIMM(UDIMM)速度快、价格便宜且不稳定。RegisteredDIMM(RDIMM)内存稳定、扩展性好、价格昂贵,并且对内存控制器施加的电气压力很小。它们也用于许多传统服务器。LoadReducedDIMM(LRDIMM)内存是RegisteredMemory(RDIMM)的替代品,它提供高内存速度,减少服务器内存总线上的负载,并且消耗更少的功率。LRDIMM内存成本远高于RDIMM内存,但在高性能计算架构中非常常见。什么是非易失性双列直插式内存NVDIMM?NVDIMM是由BBU(BatteryBackedUp)DIMM演变而来。BBU使用备用电池来维持普通易失性存储器的内容数小时。但电池中含有重金属,造成废弃物处理和环境污染,不符合绿色能源的要求。由超级电容供电的NVDIMM应运而生。而NVDIMM采用非易失性Flash存储介质来保存数据,数据可以保存更长时间。主流的高性能计算网络类型有哪些?InfiniBand架构是一种支持多个并发链路的“转换电缆”技术。InfiniBand技术不用于一般网络连接。它的主要设计目的是针对服务器端的连接问题。因此,InfiniBand技术将应用于服务器到服务器(如复制、分布式工作等)、服务器到存储设备(如SAN和直接存储附件)、服务器到网络(如局域网、广域网和互联网)通信。高性能计算HPC系统为何采用IB互连?主要原因是IB协议栈简单,处理效率高,管理简单,对RDMA的支持好,功耗低,延迟低。目前只有Mexllaon、Intel、Qlogic提供IB产品,Mexllaon是处于主导地位的主要玩家。IB目前支持FDR、QDR和EDR。HostChannelAdapters(HCA)是IB连接的设备端点,提供传输功能和Verb接口;目标通道适配器(TCA)是HCA的一个子集,主要用于存储。RDMA(RemoteDirectMemoryAccess)技术的全称是远程直接数据访问,是为了解决服务器端数据处理在网络传输中的延迟而产生的。RDMA通过网络将数据直接传输到计算机的存储区,将数据从一个系统快速移动到远程系统内存,实现ZeroCopy。高性能计算的灵魂——并行文件系统TOP500HPC系统主要采用分布式文件系统进行存储,分布式文件系统(DistributedFileSystem)可以有效解决数据存储和管理问题:一个文件固定在一个系统中,可以扩展到任意数量的位置/多个文件系统,许多节点形成一个文件系统网络。每个节点可以分布在不同的位置,节点之间的通信和数据传输可以通过网络进行。人们在使用分布式文件系统时,不需要关心数据存储在哪个节点上,从哪个节点获取。他们只需要像本地文件系统一样管理和存储文件系统中的数据。分布式文件系统的设计基于客户端/服务器模型。典型的网络可能包括由多个用户访问的多个服务器。目前主流的分布式文件系统包括:Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、GoogleFS,其中Lustre和GPFS在HPC中最为主流。
