高性能计算(HPC) 指通常使用很多处理器(作为单个机器的一部分)或者某一集群中组织的几台计算机(作为单个计算资源操作)的计算系统和环境。高性能集群上运行的应用程序一般使用并行算法,把一个大的普通问题根据一定的规则分为许多小的子问题,在集群内的不同节点上进行计算,而这些小问题的处理结果,经过处理可合并为原问题的最终结果。由于这些小问题的计算一般是可以并行完成的,从而可以缩短问题的处理时间。
高性能集群在计算过程中,各节点是协同工作的,它们分别处理大问题的一部分,并在处理中根据需要进行数据交换,各节点的处理结果都是最终结果的一部分。高性能集群的处理能力与集群的规模成正比,是集群内各节点处理能力之和,但这种集群一般没有高可用性。高性能计算的分类方法很多。这里从并行任务间的关系角度来对高性能计算分类。
一、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。因为这种类型应用的一个共同特征是在海量数据上搜索某些特定模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照Flynn的分类,高吞吐计算属于SIMDSingle Instruction/Multiple Data,单指令流-多数据流)的范畴。
二、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data,多指令流-多数据流)的范畴。
有许多类型的HPC 系统,其范围从标准计算机的大型集群,到高度专用的硬件。大多数基于集群的HPC系统使用高性能网络互连,基本的网络拓扑和组织可以使用一个简单的总线拓扑。HPC系统由计算、存储、网络、集群软件四部分组成。
高性能计算HPC系统技术特点是什么?
HPC系统目前主流处理器是X86处理器,操作系统是linux 系统(包括Intel、AMD、NEC、Power、PowerPC、Sparc等)、构建方式采用刀片系统,互联网络使用IB和10GE。
高性能计算HPC集群中计算节点一般 分3种: MPI节点、胖节点、GPU加速节点。双路节点称为瘦节点(MPI节点),双路以上称为胖节点;胖节点配置大容量内存;集群中胖节点的数量要根据实际应用需求而定。
GPU英文全称Graphic Processing Unit,中文翻译为图形处理器。 在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。目前GPU厂家只有三家NVIDIA GPU、AMD GPU和Intel Xeon PHI。可选择的GPU种类比较少。
- NVIDIA 的GPU卡分图形卡和计算卡,图形卡有NVIDA K2000与K4000,计算卡K20X/K40M/K80 。
- Intel 的GPU是Intel Xeon Phi 系列,属于计算卡,主要产品有Phi 5110P 、Phi 3210P、Phi 7120P、Phi 31S1P。
- AMD 的GPU是图形和计算合一,主要产品有W5000、W9100、S7000、S9000、S10000。
高性能计算的性能指标怎样衡量?
CPU的性能计算公式: 单节点性能=处理器主频*核数*单节点CPU数量*单周期指令数。单周期指令数=8(E5-2600/E5-2600 v2/E7-4800 v2)或16(E5-2600 v3);节点数量=峰值浮点性能需求/单节点性能。
时延( 内存和磁盘访问延时)是计算的另一个性能衡量指标,在HPC系统中,一般时延要求如下:
- 一个MFlops等于每秒一佰万(=10^6)次的浮点运算;
- 一个GFlops等于每秒拾亿(=10^9)次的浮点运算;
- 一个TFlops等于每秒一万亿(=10^12)次的浮点运算,(1太拉);
- 一个PFlops等于每秒一千万亿(=10^15)次的浮点运算;
- 一个EFlops等于每秒一佰京(=10^18)次的浮点运算。
测试工具—Linpack HPC是什么?
Linpack HPC 是性能测试工具。LINPACK是线性系统软件包(Linear system package) 的缩写, 主要开始于 1974 年 4 月, 美国Argonne 国家实验室应用数学所主任 Jim Pool, 在一系列非正式的讨论会中评估,建立一套专门解线性系统问题之数学软件的可能性。
业界还有其他多种测试基准,有的是基于实际的应用种类如TPC-C,有的是测试系统的某一部分的性能,如测试硬盘吞吐能力的IOmeter,测试内存带宽的stream。
至目前为止, Linpack 还是广泛地应用于解各种数学和工程问题。也由于它高效率的运算, 使得其它几种数学软件例如IMSL、MatLab纷纷加以引用来处理矩阵问题,所以足见其在科学计算上有举足轻重的地位。
Linpack现在在国际上已经成为***的用于测试高性能计算机系统浮点性能的Benchmark。通过利用高性能计算机,用高斯消元法求解N元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。
双列直插式内存(DIMM)有几种类型?
双列直插式内存(DIMM)包括UDIMM内存、RDIMM内存和LRDIMM内存三种DIMM内存可用类型。
- 在处理较大型工作负载时,无缓冲DIMM( UDIMM )速度快、廉价但不稳定。
- 寄存器式DIMM( RDIMM )内存稳定、扩展性好、昂贵,而且对内存控制器的电气压力小。它们同样在许多传统服务器上使用。
- 降载 DIMM( LRDIMM )内存是寄存器式内存( RDIMM )的替代品,它们能提供高内存速度,降低服务器内存总线的负载,而且功耗更低。LRDIMM内存成本比 RDIMM内存高非常多,但在高性能计算架构中十分常见。
非易失双列直插式内存NVDIMM是什么?
NVDIMM由BBU(Battery Backed Up) DIMM演变而来。BBU采用后备电池以维持普通挥发性内存中的内容几小时之久。但是,电池含有重金属,废弃处置和对环境的污染,不符合绿色能源的要求。由超级电容作为动力源的NVDIMM应运而生。并且NVDIMM使用非挥发性的Flash存储介质来保存数据,数据能够保存的时间更长。
主流高性能计算网络类型有哪些?
InfiniBand架构是一种支持多并发链接的“转换线缆”技术,InfiniBand技术不是用于一般网络连接的,它的主要设计目的是针对服务器端的连接问题的。因此,InfiniBand技术将会被应用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如SAN和直接存储附件)以及服务器和网络之间(比如LAN,WANs和互联网)的通信。高性能计算HPC系统为什么要使用IB互联?主要原因是IB协议栈简单,处理效率高,管理简单,对RDMA支持好,功耗低,时延低。
目前只有Mexllaon、Intel、Qlogic提供IB产品,Mexllaon是主要玩家,处于主导地位, IB目前支持FDR和QDR、EDR。
Host Channel Adapters (HCA)是IB连接的设备终结点,提供传输功能和Verb接口;Target Channel Adapters (TCA)是HCA的子集,基本上用于存储。
RDMA(Remote Direct Memory Access)技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把数据直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,实现Zero Copy。
高性能计算的灵魂—并行文件系统
TOP500 HPC系统中存储主要使用分布式文件系统,分布式文件系统(Distributed File System)可以有效解决数据的存储和管理难题: 将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。
分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。当前主流的分布式文件系统包括: Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、以及GoogleFS等,其中Lustre、GPFS是HPC最主流的。