最近在参加IPCC竞赛,在和老师交流的过程中,发现自己对很多基本的概念,业界的名词并没有那么了解,由于一直在做数值分析这块的东西,很多之前学过的内容慢慢的都遗忘了,为了扩宽自己的知识面,最近在看一些科普性质的博客,将一些比较精华的部分摘了下来,以便自己温故而知新。
-
高性能计算的相关概念
高性能计算(High performance computing, 缩写HPC) 指通常使用很多处理器(作为单个机器的一部分)或者某一集群中组织的几台计算机(作为单个计 算资源操作)的计算系统和环境。有许多类型的HPC 系统,其范围从标准计算机的大型集群,到高度专用的硬件。大多数基于集群的HPC系统使用高性能网络互连,比如那些来自 InfiniBand 或 Myrinet 的网络互连。基本的网络拓扑和组织可以使用一个简单的总线拓扑,在性能很高的环境中,网状网络系统在主机之间提供较短的潜伏期,所以可改善总体网络性能和传输速率。高性能计算主要涉及微处理器、高性能计算机系统、高性能并行算法与应用等多个核心技术。
我们平时经常说几节点,几核,几进程,几线程,这里面的节点就是指某一集群中的某台或多台计算机,核便是指计算机中的处理器,现在一般都是多核处理器,即在一个处理器上集成多个运算核心,从而提高计算能力。进程是一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。
-
高性能计算的分类
高性能集群在计算过程中,各节点是协同工作的,它们分别处理大问题的一部分,并在处理中根据需要进行数据交换,各节点的处理结果都是最终结果的一部分。高性能集群的处理能力与集群的规模成正比,是集群内各节点处理能力之和,但这种集群一般没有高可用性。高性能计算的分类方法很多。 -
从并行任务间的关系分类
- 高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。因为这种类型应用的一个共同特征是在海量数据上搜索某些特定模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data,单指令流-多数据流)的范畴。 - 分布计算(Distributed Comp