并行程序设计
一、 并行编程硬件基础 1 并行程序设计引言 1.1 并行计算的基本概念
利用多个节点(计算机或者CPU核)计算能力的迭加达到提高系统计算能力的目的。 并行计算:并行机上所作的计算,又称高性能计算或超级计算。 并行计算技术是现代计算机技术研究的一个重要方向。 1.2 并行计算机的简述 并行计算机:
由一组处理单元组成,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。 两个最主要的组成部分: 计算节点
节点间的通信与协作机制 出现背景:
60年代初期,晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。出现规模不大的共享存储多处理器系统,即大型主机(Mainframe)。
60 年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了,在处理器内部的应用大大提高了并行计算机系统的性能。
Flynn根据指令流和数据流的不同组织方式,把计算机系统的结构分为以下四类: 单指令流单数据流(Single Instruction stream Single Data stream, SISD) 单指令流多数据流(Single Instruction stream Multiple Data stream, SIMD) 多指令流单数据流(Multiple Instruction stream Single Data stream, MISD) 多指令流多数据流(Multiple Instruction stream Multiple Data stream, MIMD) 并行计算机系统结构分类 分布式存储器的SIMD处理机
向量超级计算机(共享式存储器SIMD) 对称多处理器(SMP) 并行向量处理机(PVP) 集群计算机 多核
单芯片多处理器(Chip multiprocessors,简称CMP) CMP是由美国斯坦福大学提出的
两个或多个独立运行的内核集成于同一个处理器上面 双核处理器 =一个处理器上包含2个内核
多核处理器 = 一个处理器上包含2个或多个内核