高性能计算基础术语

HPC

高性能计算(High performance computing, 缩写HPC) 是利用超级计算机实现并行计算的理论、方法、技术以及应用的一门技术科学,围绕利用不断发展的并行处理单元以及并行体系架构实现高性能并行计算这一核心问题,该领域研究范围包括并行计算模型、并行编程模型、并行执行模型、并行自适应框架、并行体系结构、并行网络通信以及并行算法设计等。

flops、gigaflops、petaflops、exaflops

FLOPS(即“每秒浮点运算次数”,“每秒峰值速度”),是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。

一个MFLOPS(megaFLOPS)等于每秒一佰万(=10^6)次的浮点运算

一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,

一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)

一个PFLOPSpetaFLOPS)等于每秒一千万亿(=10^15)次的浮点运算,

一个EFLOPS(exaFLOPS)等于每秒一佰京(=10^18)次的浮点运算。

基准测试程序

基准测试程序(Benchmark)用来测量机器的硬件最高实际运行性能,以及软件优化的性能提升效果,可分为微基准测试程序(Microbenchmark)和宏基准测试程序(Macrobenchmark)。

微基准测试程序用来测量一个计算机系统的某一特定方面,如CPU定点/浮点性能、存储器速度、I/O速度、网络速度或系统软件性能(如同步性能);

宏基准测试程序用来测量一个计算机系统的总体性能或优化方法的通用性,可选取不同应用,如Web服务程序、数据处理程序以及科学与工程计算程序。

并行处理

并行处理(Parallel Processing)是计算机系统中能同时执行两个或多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理进程(线程)中。并行处理由于存在相互关联的问题,因此不能自动实现。另外,并行也不能保证加速。从理论上讲,在 n 个并行处理的执行速度可能会是在单一处理机上执行的速度的n倍。

OpenMP

OpenMP是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受,用于共享内存并行系统多处理器程序设计的一套指导性编译处理方案(Compiler Directive) [1]  。OpenMP支持的编程语言包括C、C++和Fortran;而支持OpenMp的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等。OpenMp提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMp时,程序又可退化为通常的程序(一般为串行),代码仍然可以正常运作,只是不能利用多线程来加速程序执行。

MPI

MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。

主要的MPI-1模型不包括共享内存概念,MPI-2只有有限的分布共享内存概念。 但是MPI程序经常在共享内存的机器上运行。在MPI模型周边设计程序比在NUMA架构下设计要好因为MPI鼓励内存本地化。

尽管MPI属于OSI参考模型的第五层或者更高,他的实现可能通过传输层的sockets和Transmission Control Protocol (TCP)覆盖大部分的层。大部分的MPI实现由一些指定惯例集(API)组成,可由C,C++,Fortran,或者有此类库的语言比如C#, Java or Python直接调用。MPI优于老式信息传递库是因为他的可移植性和速度。

摩尔定律

摩尔定律是英特尔创始人之一戈登·摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。

摩尔定律是内行人摩尔的经验之谈,汉译名为“定律”,但并非自然科学定律,它一定程度揭示了信息技术进步的速度。

强扩展性和弱扩展性

算法的强可扩展性定义:算法的效率恒定,或效率不随着线程数的增大而降低,那么称程序是可扩展的。
算法的弱可扩展性定义:问题规模以一定速率增大,效率不随着线程数的增大而降低,则认为程序是可扩展的。

饥饿

饥饿 ,与死锁和活锁非常相似。是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。

延迟

信息从一个系统的一个部分传输到零一部分所需的时间。

开销

超出执行计算实际所需工作量的额外工作量。

TLB

转译后备缓冲器,也被翻译为页表缓存、转址旁路缓存,为CPU的一种缓存,由存储器管理单元用于改进虚拟地址到物理地址的转译速度。当前所有的桌面型及服务器型处理器(如 x86)皆使用TLB。TLB具有固定数目的空间槽,用于存放将虚拟地址映射至物理地址的标签页表条目。为典型的结合存储(content-addressable memory,首字母缩略字:CAM)。其搜索关键字为虚拟内存地址,其搜索结果为物理地址。如果请求的虚拟地址在TLB中存在,CAM 将给出一个非常快速的匹配结果,之后就可以使用得到的物理地址访问存储器。如果请求的虚拟地址不在 TLB 中,就会使用标签页表进行虚实地址转换,而标签页表的访问速度比TLB慢很多。有些系统允许标签页表被交换到次级存储器,那么虚实地址转换可能要花非常长的时间。

ALU

算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算逻辑运算组合逻辑电路,简称ALU。

冯诺依曼体系结构

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器输入设备输出设备),这套理论被称为冯·诺依曼体系结构。

图灵机

图灵机,又称图灵计算机指一个抽象的机器,是,英国数学家艾伦・麦席森・图灵(1912―-1954年)于1936年提出的一种抽象的计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。

SSI

Server Side Include,是一种类似于ASP的基于服务器的网页制作技术。大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令。

DRAM

动态随机存取存储器(Dynamic Random Access Memory,DRAM)是一种半导体存储器,主要的作用原理是利用电容内存储电荷的多寡来代表一个二进制比特(bit)是1还是0。由于在现实中晶体管会有漏电电流的现象,导致电容上所存储的电荷数量并不足以正确的判别数据,而导致数据毁损。因此对于DRAM来说,周期性地充电是一个无可避免的要件。由于这种需要定时刷新的特性,因此被称为“动态”存储器。相对来说,静态存储器SRAM)只要存入数据后,纵使不刷新也不会丢失记忆。

SIMD

单指令流多数据流是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。

VLSI

超大规模集成电路(Very Large Scale Integration Circuit,VLSI)是一种将大量晶体管组合到单一芯片的集成电路,其集成度大于大规模集成电路

分布式内存

多处理机或多计算机储存系统的内存组成方案。

NASA Beowulf工程

贝奥武夫机群是一种高性能的并行计算机集群结构,特点是使用廉价的个人电脑硬件组装以达到最优的性能/价格比。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丢丢王子00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值