HPC高性能计算知识:异构并行计算
消息来源:baojiabao.com 作者: 发布时间:2026-06-29

当摩尔定律还是行业的铁律时,计算机编程几乎一直都是串列的,绝大多数的程序只存在一个进程或线程。大家还过着“我写个程序,性能达不到就睡个觉,等硬件工艺刷新硬件性能,性能就达标了”的美好生活。2003年以后因为工艺达到了瓶颈,你光“睡觉”是不行了。异构并行计算作为重要技术之一承担起了技术变革的重任。
异构并行计算的本质是把任务分发给不同架构的硬件计算单元(比如说CPU、GPU、FPGA等),让他们各司其职,同步工作。如同平时工作,把业务中不同类型的任务分给不同的计算资源执行。
从软件的角度来讲,异构并行计算框架是让软件开发者高效地开发异构并行的程序,充分使用计算平台资源。从硬件角度来讲,一方面,多种不同类型的计算单元通过更多时钟频率和内核数量提高计算能力,另一方面,各种计算单元通过技术优化(如GPU从底层架构支持通用计算,通过分支预测、原子运算、动态并行、统一定址、NIC直接访问显存等能力)提高执行效率。
异构计算(Heterogeneous Computing)在80年代中期就已产生,其定义更加宽泛。异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。一个异构计算平台往往包含使用不同指令集架构(ISA)的处理器。
在HPC异构并行计算架构应用技术中,通常分为通用架构并行和专用架构并行。通用架构并分为同构多核并行(X86 CPU多核并行计算和非X86 CPU多核并行计算)和异构众核并行(CPU+GPU异构协同计算和CPU+MIC异构协同计算);专用架构并行主要是指CPU+FPGA异构协同计算。
从更广义的角度来讲,不同计算平台的各个层次上都存在异构现象,除硬件层的指令集、互联、内存层次之外,软件层中应用二进制界面、API、语言特性底层实现等的不同,对于上层应用和服务而言,都是异构的。异构并行计算框架有个非常重要的特征就是能够帮助开发者屏蔽底层硬件差异,能让软件平台自适应未来硬件的演进。概括来说,理想的异构计算具有如下的一些要素:
它所使用的计算资源具有多种类型的计算能力,如SIMD、MIMD、向量、标量、专用等。
其中,芯片硬件定义了单指令单数据(SISD)、单指令多数据流(SIMD)、多指令单数据(MISD)和多指令多数据(MIMD)四个并行级别,此外,MIMD还分单程序多数据(SPMD)和多程序多数据(MPMD)。
它需要识别计算任务中各子任务的并行性需求类型;
它需要使具有不同计算类型的计算资源能相互协调运行;
它既要开发应用问题中的并行性,更要开发应用问题中的异构性,即追求计算资源所具有的计算类型与它所执行的任务(或子任务)类型之间的匹配性;
它追求的最终目标是使计算任务的执行具有最短时间。
可见,异构计算技术是一种使计算任务的并行性类型(代码类型)与机器能有效支持的计算类型(即机器能力)最匹配、最能充分利用各种计算资源的并行和分布计算技术。异构计算处理过程本质上可分为三个阶段:
并行性检测阶段。并行性检测不是异构计算特有的,同构计算也需要经历这一阶段,可用并行和分布计算中的常规方法加以处理。
并行性特征(类型)析取阶段。并行性特征析取阶段是异构计算特有的,这一阶段的主要工作是估计应用中每个任务的计算类型参数,包括映射及对任务间通信代价的考虑。
任务映射和调度阶段,也称为资源分配阶段。主要确定每个任务(或子任务)应该映射到哪台机器上执行以及何时开始执行。
从用户来看,上述的异步计算处理过程可用两种方法来实现:
第一种是用户指导法,即由用户用显式的编译器命令指导编译器完成对应用代码类型分析及有关任务的分解等工作,这是一种显式开发异构性和并行性方法,较易于实现,但对用户有一定要求,需将异构计算思想融入用户程序中。这是当前主流采用的方法,我们所知的CUDA(Computing Unified Device Architecture) 、OpenCL都是采用用户指导法。
另一种是编译器指导法,需将异构思想融入编译器中,然后由具有“异构智能”的编译器自动完成应用代码类型分析、任务分解、任务映射及调度等工作,即实现自动异构计算。这是一种隐式开发异构性和并行性方法,是异构计算追求的终极目标,但难度很大,对编译器要求很高。NVIDIA已经开始部分尝试编译器指导法,当然,基于CUDA Core的同构特征,也可以认为其做的是同构自动调度。
异构计算按提供计算类型多样性的形式来看,可分为系统异构计算SHC(System Heterogeneous Computing) 和网络异构计算NHC(Network Heterogeneous Computing) 两大类。SHC以单机多处理器形式提供多种计算类型,而NHC则以网络连接的多计算机形式提供多种计算类型。用于HPC的计算系统(如IBM RoadRunner等)属于NHC;当前热门的CUDA、OpenCL都属于SHC的范畴。
随着深度神经网络为代表的深度学习盛行,从图像识别到自然语言处理、自动驾驶等,似乎大家遇上了问题都会思考:“能否依靠AI来解决?”对于深度神经网络训练来说,通常网络越深,需要的训练时间越长。一次训练使用单X86 CPU来做,可能需要一年,使用8核CPU来做,也需要一个半月到两个月,但是使用单GPU来做,只需要一周,但是一周对实际生产来说已经非常慢了,大家希望一天两天、甚至是几个小时训练就能够得到结果。在部署的时候,计算平台通常是X86或ARM,提高其计算性能对用户的使用体验非常重要。基于这些原因,深度学习应用领域应用对异构并行计算领域非常关注。
另外,云计算的兴起,数量繁多的云服务不再单纯地追求处理速度,而是在同时处理大量数据以及在可忍受的时间内提供服务方面有更多诉求。这些诉求与CPU对单个任务快速响应的特征并不一致,迫切需要微结构与CPU不同的加速设备协助完成,在这方面,异构并行计算天然支持不同硬件资源,充分发挥不同硬件的特点,有着非常巨大的优势。
异构并行计算作为当前性能提升,需求满足的重要法宝之一,可以想见在对于时延、性能、功耗都有着非常严格或者说苛刻的要求的通信领域,或者讲究用户体验的终端领域都有非常重要的地位。
相关文章
B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因2023-03-06 19:05:55
苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓2023-02-19 15:09:54
华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?2023-02-17 23:21:27
google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元2023-02-17 18:58:09
科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯2023-02-17 18:46:15
华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比2023-02-17 18:42:49
小米MAX4手机上市日期首发价格 骁龙720打造大屏标准2023-02-17 18:37:22
武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱2023-02-16 15:53:18
谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠2023-02-16 13:34:45
巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注2023-02-13 16:49:06
人手不足 韵达快递客服回应大量包裹派送异常没有收到2023-02-07 15:25:20
资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东2023-02-02 09:24:38
三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办2023-01-24 10:10:02
华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone142023-01-06 20:27:09
芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?2022-12-02 17:25:17
华为暂缓招聘停止社招了吗?官方回应来了2022-11-19 11:53:50
热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全2022-11-16 16:59:09
东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?2022-10-22 15:21:55
苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次2022-10-03 22:13:45
苹果美版iPhone可以在中国保修 从哪看怎么查询iPhone的生产日期?2022-09-22 10:00:07










