《多核与GPU编程:工具、方法及实践》----1.2 并行计算机的分类-阿里云开发者社区

开发者社区> 华章出版社> 正文

《多核与GPU编程:工具、方法及实践》----1.2 并行计算机的分类

简介: 使用多种资源获取更高性能并不是最新的技术,这个技术最早开始于20世纪60年代。因此,定义一种描述并行计算机架构特征的方法是非常重要的。1966年,Michael Flynn引入了一种计算机体系结构分类方法:根据能够并发处理的数据量和同时执行的不同指令数目进行分类。

本节书摘来自华章出版社《多核与GPU编程:工具、方法及实践》一书中的第1章,第1.2节, 作 者 Multicore and GPU Programming: An Integrated Approach[阿联酋]杰拉西莫斯·巴拉斯(Gerassimos Barlas) 著,张云泉 贾海鹏 李士刚 袁良 等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 并行计算机的分类

使用多种资源获取更高性能并不是最新的技术,这个技术最早开始于20世纪60年代。因此,定义一种描述并行计算机架构特征的方法是非常重要的。1966年,Michael Flynn引入了一种计算机体系结构分类方法:根据能够并发处理的数据量和同时执行的不同指令数目进行分类。根据这两个条件,计算机体系结构可以分为四类:

单指令单数据(Single Instruction Single Data,SISD):只能同时执行一条指令并处理一个数据的串行计算机。出人意料的是,绝大多数现代CPU都不属于这个类别。甚至现代微控制器都是多核配置,每个核都可以认为是一个SISD机器。

单指令多数据(Single Instruction Multiple Data,SIMD):一条指令可以处理多个数据的计算机。最早出现的这类机器是向量处理器。GPU的流多处理器(Streaming Multiprocessor,SM;针对 NVIDIA)和SIMD单元(针对 AMD)遵循这样的设计。

多指令单数据(Multiple Instructions Single Data,MISD):这好像是一个“怪胎”,多条指令如何处理相同数据呢?正常情况下,这是没有意义的。然而,当系统(军事或航天应用中)需要容错时,数据被多个机器处理,并根据多数原则做出最终决定。

多指令多数据(Multiple Instructions Multiple Data ,MIMD):最通用的类别。多核计算机(包括GPU)都遵循这种设计。GPU由多个SM/SIMD单元组成,每个SM/SIMD单元都能够运行自己的程序。所以,即使单个SM属于SIMD类别,多个SM集成起来的工作方式也是MIMD。

这个分类方法经过细化,又添加了几个子类(特别是MIMD),如图1-2所示。MIMD分成两个子类。


476c5409faf4ef0e486b97027497cc88fa495a8b

共享内存MIMD:具有共享存储空间的计算机体系架构。一方面,共享内存在最小化额外开销的前提下,简化了所有CPU间的操作;另一方面,共享内存限制了系统的可扩展性。解决这个问题的一个方法就是划分内存,为每个CPU分配一块独立的内存。这样,CPU不仅能以较高的性能访问本地内存,还能以较低的性能访问属于其他CPU的非本地内存。值得注意的是,内存划分不会影响寻址机制。这个设计称为非一致性内存访问(Non-Uniform Memory Access,NUMA),并允许共享内存计算机扩展到几十个CPU。

分布式内存或者无共享MIMD:由通过消息交换进行通信的CPU构成的计算机。虽然这种架构的通信开销非常高,但是由于没有相互竞争的资源,所以这种架构的可扩展性非常好(除了空间和能源限制之外,几乎没有其他限制因素)。

共享内存计算机又可进一步划分为主/从(master-worker)和对称多处理器(Symmetric Multiprocessing,SMP)两类。在SMP架构中,所有CPU都是等价的,并且能够执行包括系统软件和应用软件在内的任意程序。在主/从架构中,一些处理器专门用来执行特定程序,我们可以将这些处理器定义为协处理器。尽管在绝大多数高性能GPU计算平台上,CPU和GPU都拥有独立内存,但是也可认为配备GPU的计算平台属于这一类别。从严格意义上说,尽管最新的驱动软件尽可能地隐藏了数据在两块内存上移动的复杂性,但是GPU计算平台并不是一个标准的共享内存平台。

配备Intel Xeon Phi协处理器的计算平台也存在类似问题。Intel Xeon Phi协处理器有61个Pentium计算核心,可以看做一个共享内存的MIMD系统。Intel Xeon Phi协处理器安装在PCIe卡上。尽管它和主机CPU都位于同一个机柜/机架上,但是分布式内存MIMD架构应该是CPU/协处理器系统的最合适分类。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接