什么是并行计算机?并行计算机有哪些优势?
扫描二维码
随时随地手机看文章
Concurrent 公司的 iHawk 并行计算机仿真系统是具有高实时特性的实时仿真系统,该仿真系统包含对称多处理器计算机平台、实时操作系统、实时开发工具以及应用软件。系统以 MATLAB® / Simulink® 软件作为前端建模工具,并可兼容C/C++、Ada 和 Fortran 等手工编程建模方式,应用领域覆盖系统架构设计、功能设计、快速原型、半实物仿真测试等阶段。并行计算机仿真系统可以应用到航空、航天、国防、汽车等实时仿真及测试领域。
并行计算机公司的实时仿真系统包括:实时多处理器平台—高性能货架式实时计算机以及多种接口类型的 I/O 板卡;RedHawk 实时 Linux 操作系统—高实时确定性;SimulaTIon WorkBench 仿真工作平台—图形化的多语言模型混合仿真;NightStar 实时 Linux 调试分析工具—保证应用程序实时确定性前提下的在线分析调试。
实时多处理器平台
iHawk 计算机的实时多处理器平台是 Concurrent 公司的高性能实时多处理器平台,用于时间关键型仿真、数据采集、系统测试和工业系统的应用。
♦ 支持多个 32/64 位多核 Intel 或 AMD 处理器
♦ 外部 I/O 总线
♦ 微秒级的高精度定时同步时钟板卡 (RCIM)
♦ 提供 8 个微秒级高精度低温漂时钟
♦ 分布式实时仿真环境
♦ GPS 时钟对准的同步选项机制
在并行计算机中,硬件提供了很大的支持
一.片内级
1.片内级并行
指的是指令级并行,如指令的流水线,通过指令调度,使指令交替执行,因为间隔时间很短,所以用户体验像是多指令并行,但其本质还是一次执行一个指令,没有做到真正意义上的并行。
2.片内多线程
首先解释一下线程和进程的区别,
进程指的是当前正在运行的程序,进程有独立的运行内存空间堆栈。
线程可以理解为轻量级的进程,一个进程可以分出多个线程,线程是没有自己独立的运行空间,只能所有线程和进程一起共享内存空间。
因此,可以通过一个进程下,衍生出多个线程这种方式,达到多指令并行的效果。
3.单片多处理器
指的是通过多核处理器,直接实现多指令并行。
二 .CPU级
1,多核处理器
与单片多处理器类似。
2.UMA对称多处理器系统
CPU的发展向多核心发展中,过多的处理器会存在着冗余的问题。因此把目光转到了总线上。
UMA——Uniform Memory Access 译为一致性内存访问
由于在一致性内存访问架构中,所有CPU对内存的访问都要通过总线完成,而总线发展缓慢,导致多核CPU通过一条总线共享内存成为瓶颈。
三.计算机级
1.分布式系统
分布式系统主要包括NUMA
NUMA的提出是为了解决UMA的问题。
NUMA全称Non-Uniform Memory Access(非一致性内存访问)
原理是不同的内存器件和CPU核心从属于不同的Node,,每个Node都有自己的集成内存控制器
这样就缓解了总线的压力,从而提高了存储速率。
2.集群计算
集群计算指的是计算机集群将一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。
并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。
所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台的独立计算机构成的集群。通过并行计算集群完成数据的处理,再将处理的结果返回给用户。并行计算可分为时间上的并行和空间上的并行。时间上的并行:是指流水线技术,比如说工厂生产食品的时候步骤分为:1. 清洗:将食品冲洗干净。2. 消毒:将食品进行消毒处理。3. 切割:将食品切成小块。4. 包装:将食品装入包装袋。如果不采用流水线,一个食品完成上述四个步骤后,下一个食品才进行处理,耗时且影响效率。但是采用流水线技术,就可以同时处理四个食品。这就是并行算法中的时间并行,在同一时间启动两个或两个以上的操作,大大提高计算性能。空间上的并行:是指多个处理机并发的执行计算,即通过网络将两个以上的处理机连接起来,达到同时计算同一个任务的不同部分,或者单个处理机无法解决的大型问题。比如小李准备在植树节种三棵树,如果小李1个人需要6个小时才能完成任务,植树节当天他叫来了好朋友小红、小王,三个人同时开始挖坑植树,2个小时后每个人都完成了一颗植树任务,这就是并行算法中的空间并行,将一个大任务分割成多个相同的子任务,来加快问题解决速度。
一台并行计算机可以是一台具有多个内部处理器的单计算机,也可以是多个互联的计算机构成一个一体的高性能计算平台。术语并行计算机通常是指专门设计的部件。根据不同的分类法可以分成不同类型的并行计算机。
1.1 费林分类法
在操作系统中我们知道,程序根据高级程序设计语言设计,程序设计语言在实现程序的功能的时候,是转换为机器指令来告诉机器该干什么。大概在50年前Flynn(1996)创造了一种计算机分类方法,中文译为费林分类法,该分类基于两个独立维度的计算机体系结构,这两个维度即数据和指令。
根据以上提到这两个维度,我们可以划分为四大类:
1.1.1 SISD
Single Instruction,Single Data(SISD)
SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期(时间片)内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流计算机。早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
1.1.2 MIMD
Multiple Instruction,Multiple Data(MIMD)
在一个通用的多处理机系统中,每个处理器拥有一个独立的程序,由每个程序为每个处理器生成一个指令流,每条指令对不同数据进行操作。Flynn将这种形式的计算机分类为多指令流多数据流计算机。
我们前面叙述的共享存储器或消息传递多处理机都属于MIMD类型。其已经经受了时间考验,至今仍然广泛地用于这种操作模式下的计算机系统中。例如多核CPU计算机。
1.1.3 SIMD
Single Instruction,Multiple Data(SIMD)
如果对某些应用而言将计算机设计成由单一程序生成指令流,但是却有多个数据存在时,将会在性能上有很大的优势。打个比方,如果是一个学生(处理器)做很多张相同的试卷(数据流),那么越做肯定越快。
SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。
Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于SIMD机器。
1.1.4 MISD
Multiple Instruction,Single Data(MISD)
MISD是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,仅仅只在1971年CMU的实验中出现过,也就是说,实际上并不存在SISD。