还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
并行计算原理及应用欢迎来到《并行计算原理及应用》课程本课程将系统地介绍并行计算的基础理论、关键技术以及广泛应用从基本概念到前沿趋势,我们将探索如何利用多处理器、分布式系统和异构计算平台来解决现代计算挑战并行计算已成为高性能计算的核心,在科学研究、工业仿真、人工智能和大数据分析等领域扮演着不可替代的角色通过本课程的学习,您将掌握并行算法设计、性能优化以及各种并行编程模型的应用技巧课程介绍与学习目标主要内容学习目标本课程涵盖并行计算的基础理论、系统架构、编程模型和通过本课程的学习,您将能够理解并行计算的基本原理,算法设计我们将从并行计算的历史发展入手,系统讲解掌握主流并行编程模型和技术,能够分析并行算法性能并分类法、共享内存与分布式内存架构等核心概念进行优化Flynn您还将了解并行计算在科学计算、人工智能、大数据等领课程重点包括、和等主流并行编程框域的典型应用,为未来在高性能计算领域的深入研究或工OpenMP MPI CUDA架,以及如何设计高效的并行算法和进行性能评估与优化作打下坚实基础什么是并行计算串行计算并行计算传统的串行计算采用单一处理单元,任务按顺序一个接一并行计算是同时使用多个计算资源解决计算问题的过程个地执行就像一条生产线上只有一个工人,所有工序必它将大问题分解为多个小问题,由多个处理单元同时求解,须依次完成最后合并结果串行计算的性能受单一处理器速度的限制,随着摩尔定律并行计算可以显著提高计算速度,解决传统串行计算无法的放缓,单核性能提升越来越困难,难以满足现代计算需在合理时间内完成的任务,如气候模拟、基因测序和深度求学习等复杂计算并行计算的发展历史1年代1960早期超级计算机如开始采用模型,标志着并行计算概念的形成ILLIAC IVSIMD这一时期主要以向量处理为主,能够对数据数组进行同步操作2年代1980大规模并行处理()系统出现,如同时期MPP ConnectionMachine MIMD模型成熟,允许多个处理器独立执行不同指令商用集群系统开始流行3年代2000多核处理器普及,计算兴起平台(年)使通用计算成GPU CUDA2007GPU为现实分布式计算框架如(年)使大规模数据并行处理变得Hadoop2006简单4年代至今2010异构计算成为主流,融合、和专用加速器云计算平台提供弹性并行CPU GPU计算能力量子计算开始展现并行计算的新形式并行计算的必要性海量数据增长性能瓶颈分析现代计算需求当前全球数据量以指数级增长,单处理器性能已接近物理极限,深度学习、气候模拟、基因组分预计到年将达到晶体管密度增长放缓,时钟频率析等前沿科研需要处理级数2025175ZB PB传统计算方法已无法在合理时间难以提升功耗和散热问题使单据和万亿次浮点运算同时,实内处理如此庞大的数据,需要并芯片性能提升变得极其困难,推时系统如自动驾驶需要在毫秒级行计算技术来分散计算负载动了多核并行架构的发展完成复杂计算,这些都使并行计算成为必然选择并行计算的基本概念任务并行数据并行任务并行是指将不同的任务分配给多个处理单元同时执行数据并行是将同一操作应用于数据集的不同部分,每个处这些任务可能是完全不同的程序,也可能是同一程序的不理单元执行相同的指令但处理不同的数据典型如矩阵运同部分任务并行适用于功能划分明确的应用,如操作系算、图像处理,同一算法被应用到不同数据块上统中同时运行多个程序数据并行常见于科学计算和机器学习,特别适合架SIMD其关键在于任务分解合理,保证各处理单元负载均衡且减构和加速GPU少任务间依赖并行度表示同时执行的计算单元数量,而粒度则指单个任务的计算量大小粗粒度并行包含较多计算、较少通信;细粒度则任务小但通信频繁选择合适的粒度是并行系统设计的关键挑战并行计算的挑战通信延迟负载均衡并行计算中,处理单元间必理想情况下,计算任务应均须交换数据和同步状态,这匀分配给所有处理单元然种通信会引入显著延迟随而,实际工作负载往往不均着系统规模增大,通信开销衡,导致部分处理器忙碌而可能成倍增长,导致性能瓶其他处理器空闲,降低整体颈在大型分布式系统中,效率动态负载均衡算法可网络延迟可能占总执行时间以缓解这一问题,但会增加的以上系统复杂度50%可扩展性和可靠性随着处理器数量增加,系统可扩展性面临挑战理论上,处理器数量翻倍应使性能翻倍,但定律表明串行部分会限制总体加Amdahl速比同时,组件数量增加也提高了故障概率,大规模系统必须考虑容错机制并行计算系统架构总览多核处理器图形处理器GPU在单个芯片上集成多个处理核心,共享包含数千个简单核心,专为高吞吐量设高速缓存和主存主流如CPU Intel计可提供超过NVIDIA A
1009.7和每颗芯片可包含Xeon AMDEPYC双精度性能,适合深度学习和TFLOPS个核心,核心间通过片上网络24-64科学计算等高度并行任务通信集群系统分布式系统由多台独立计算机通过高速网络连接组地理位置分散的异构计算资源通过互联成典型集群包含数十到数千个节点,网连接分布式系统强调容错和动态资每个节点又有多个和如阿CPU GPU源管理,如的全球数据中心网络Google里云集群可提供数百万核心算E-HPC包含数百万台服务器力分类法Flynn单指令流单数据流SISD传统串行计算模型,单个处理器执行单个指令流对单个数据流进行操作经典冯诺依曼架构的·计算机都属于此类,如早期的个人电脑虽然简单但性能有限,现已很少单独使用单指令流多数据流SIMD多个处理单元同时执行相同指令,但作用于不同数据典型应用包括向量处理器和现代中CPU的指令集,以及的部分功能特别适合图像处理、科学计算等规则数据处理SSE/AVX GPU多指令流单数据流MISD多个处理单元对同一数据执行不同指令这种架构较为罕见,主要用于容错系统和特定领域,如航天器控制系统,多个处理器同时验证计算结果以提高可靠性多指令流多数据流MIMD最灵活的并行计算模型,多个处理器执行不同指令处理不同数据现代多核处理器、集群计算系统和分布式系统大多属于此类系统可以处理各种类型的并行任务MIMD共享存储架构()SMP统一内存访问非统一内存访问UMA NUMA在模型中,所有处理器对所架构中,处理器访问本地UMA NUMA有内存位置的访问时间相同这种内存比远程内存更快这提高了大对称多处理器架构使编程型系统的可扩展性,但增加了编程SMP相对简单,但扩展性有限,通常支复杂性需要数据本地化优化以获持数十个处理器常见于工作站和得最佳性能典型系统如AMD小型服务器服务器EPYC缓存一致性共享内存系统面临的主要挑战是维护缓存一致性当多个处理器缓存同一内存位置时,修改必须同步以避免数据不一致等协议通过监控总线上的缓存MESI事务来解决这一问题共享内存架构的主要优势是程序员可以使用传统的编程模型,通过线程库如POSIX或高级模型如实现并行化然而,其主要局限在于系统规模受内存threads OpenMP带宽和互连网络限制,难以构建超大规模系统分布式存储架构基本特性网络通信分布式内存系统中,每个处理器都有自己的本地内存,不节点间通信质量直接影响系统性能,关键指标包括带宽能直接访问其他处理器的内存处理器之间通过显式消息(数据传输速率)和延迟(传输启动时间)高性能互连传递来交换数据和同步操作网络如可提供带宽和不到微秒的InfiniBand200Gb/s1延迟这种架构天然可扩展,理论上可以连接无限多的节点,但编程难度较大,需要明确的通信代码典型实现包括大型通信拓扑也很重要,常见有星形、环形、网格和高维超立集群和超级计算机方体等,不同应用适合不同拓扑结构分布式存储架构特别适合那些可以清晰划分数据域、通信需求可预测的应用,如大规模科学模拟、气候模型和分布式数据处理中国的神威太湖之光和美国的超级计算机都采用这种架构·Summit混合型架构多集群分布式系统地理分布的多个计算集群集群层分布式内存通过高速网络连接的多个节点节点层共享内存NUMA多处理器共享内存的单个服务器处理器层多核单芯片上的多个计算核心现代高性能计算系统通常采用混合架构,结合了共享内存和分布式内存的特点在这种架构中,每个计算节点内部是一个共享内存系统(如多处理器服NUMA务器),而节点之间则通过消息传递进行通信混合编程模型也随之兴起,如在节点内使用进行共享内存多线程并行,节点间使用进行消息传递这种混合方法充分利用了两种架构的优势,提OpenMP MPI高了性能和可扩展性,但也增加了编程复杂性典型系统如天河系列超级计算机并行计算架构GPU架构并行执行模型CUDA的架构将组织为多采用(单指令多线程)执行NVIDIA CUDA GPU GPUSIMT个流多处理器,每个包含多个模型,线程被组织为线程块和网格SM SM核心这种层次化设计使能这种层次结构反映了硬件组织,使程序CUDAGPU高效地执行成千上万个轻量级线程最员能有效管理并行任务每个线程块内新的包含个,的线程可以共享资源并同步,不同线程NVIDIA A100108SM每个有个核心,总计超过块则相对独立执行SM64FP32个核心6900内存层次具有复杂的内存层次,包括全局内存、共享内存、常量内存和纹理内存等合理利GPU用这些不同特性的内存是性能优化的关键共享内存速度接近寄存器,但容量有限;全局内存容量大但访问延迟高在超级计算机排行榜中,超过的系统都采用加速深度学习和人工智能的TOP50070%GPU兴起进一步推动了在高性能计算中的应用中国的神威太湖之光虽不使用而是自GPU·GPU研众核处理器,但类似的并行架构思想也广泛应用于其设计中集群与网格计算架构高速互连网络计算节点或高速以太网提供低延迟高带宽连InfiniBand多核、内存和本地存储构成基本计算单元CPU接资源管理系统共享存储系统调度器和作业管理系统协调计算资源分配分布式文件系统提供统一数据访问集群系统由多台物理机通过高速网络连接组成,构成一个统一的计算资源池现代集群通常采用网络,提供高达的节点间带宽和亚InfiniBand200Gb/s微秒级延迟,远优于传统以太网大数据平台如和构建在集群架构上,提供弹性分布式数据处理能力依靠分布式文件系统存储级数据,则利用内Hadoop SparkHadoop HDFSPB Spark存计算加速数据处理,可比快倍阿里巴巴的系统运行在由超过万台服务器组成的集群上,每天处理级Hadoop MapReduce100MaxCompute10EB数据超级计算机结构实例
9.2PFlops
148.6PFlops神威太湖之光·Summit中国自主研发的神威众核处理器,每个节美国橡树岭国家实验室的超算,采用26010IBM点包含个计算核心,系统总计超过万核处理器与混合架构2601000Power9NVIDIA V100GPU心
1.1EFlopsFrontier世界首台突破级百亿亿次的超级计算机,使用E和,拥有超过个计算节点AMD CPU GPU9000神威太湖之光采用了完全自主研发的处理器和软件栈,其个计算节点通过自主研发的高速网络·40960互连系统采用了水冷技术,能效比领先,曾获得奖Gordon Bell未来超算正向更多元化方向发展,包括传统、加速器、、专用芯片和新型计算架构如CPU GPUFPGA AI神经形态计算等中国计划在十四五期间部署更多级系统,发展自主可控的高性能计算能力E并行系统中的通信机制点对点通信集体通信同步机制直接在两个处理单元之涉及多个处理单元的协确保多个并行任务在特间传送数据,包括阻塞调操作,如广播一对多、定点协调执行,包括屏和非阻塞模式基本操归约多对一和全局交换障同步所有进程必须到作包括发送和接多对多集体操作能显达某点才能继续和条件send收,通常需要著简化编程并优化网络同步基于特定条件良receive指定源、目标、数据和使用,但需要所有参与好的同步设计对减少处标签等参数点对点通进程的同步,可能引入理器空闲时间至关重要信灵活但需要精细控制等待开销消息传递接口是分布式内存系统中最流行的通信标准,提供了丰富的点对MPI点和集体通信操作则通过共享内存实现线程间通信,以指令式编程OpenMP简化了开发现代高性能应用常采用混合模型,结合两种方法的MPI+OpenMP优势并行存储系统分布式数据库支持并行事务处理和分析1分布式文件系统提供全局命名空间的文件访问并行中间件I/O优化数据传输和聚合操作存储硬件层4阵列和存储节点RAID并行存储系统是大规模并行计算的重要支撑技术通过将数据分布在多个磁盘上实现并行访问,不仅提高了带宽还增强了可靠性常见的配置包括RAID RAID条带化,提高性能和分布式奇偶校验,平衡性能和容错RAID-0RAID-5并行文件系统如和能够将文件数据分布在成百上千个存储节点上,提供级容量和级聚合带宽这些系统支持成千上万个客户端同时访问,Lustre GPFSPB TB/s是超级计算机和大数据平台的核心组件阿里云盘古分布式存储系统在单集群可扩展到级规模,支持每秒数百万次操作EB I/O并行编程模型概览指令级并行自动利用中的多个功能单元CPU数据级并行对多个数据元素应用相同操作线程级并行多线程共享地址空间协作完成任务任务级并行4独立任务通过消息通信协调工作并行编程模型提供了一种抽象,使程序员能够在不深入了解底层硬件细节的情况下进行并行编程指令级并行由编译器和处理器自动处理,而更高级别的并行则需要程序员显式表达共享内存模型中,多个线程访问共同的地址空间,通过读写共享变量进行通信,常见实现有线程和消息传递模型中,独立进程通过发送和接POSIX OpenMP收消息进行通信和同步,是其代表数据并行模型强调对数据集的统一操作,特别适合编程,如和MPI GPU CUDA OpenCL线程模型与OpenMP模式Fork-Join程序开始于单一主线程,在并行区域创建多个工作线程(),并行区域结fork束后线程合并回主线程()这种简单直观的模型使开发者能够逐步将串join行程序并行化指令式语法通过编译器指令()标记并行区域和数据属性,无需显式创建和管#pragma理线程这种方法可以保留原始代码结构,大幅降低并行化难度,同时使串行和并行版本共存于同一源文件数据共享与作用域变量可被声明为共享(所有线程访问同一实例)或私有(每个线程有独立副本)正确管理数据共享对避免竞态条件和确保结果正确性至关重要任务调度与负载均衡支持多种工作分配策略,包括静态、动态和引导式调度合理的调OpenMP度策略可以优化负载平衡,特别是当工作单元计算量不均时消息传递模型与MPI基本通信操作集体通信和是最基本提供丰富的集体操作,如MPI_Send MPI_Recv MPI的点对点通信操作,允许两个进程广播、MPI_Bcast之间传递数据发送方需指定目标归约、MPI_Reduce进程、数据缓冲区和数据类型,接分散和MPI_Scatter收方则需指定源进程和接收缓冲区聚集等这些高级MPI_Gather这些操作既有阻塞版本也有非阻塞通信原语优化了网络利用,简化了版本复杂通信模式的实现进程组与通信域使用通信子概念将进程分组,每个通信子定义了一个可以相互通信的进MPI程集合这种抽象支持模块化程序设计,允许不同组件在各自的通信上下文中安全操作已成为分布式内存并行编程的事实标准,支持、、等多种语言MPICC++Fortran程序可在从笔记本电脑到全球最大超级计算机的各种平台上运行,提供了极佳的MPI可移植性天气预报模型、流体动力学模拟和分子动力学等科学应用广泛采用,MPI充分利用大规模并行系统的计算能力编程与GPUCUDA异构编程模型采用异构编程模型,将程序分为在(主机)和(设备)上执CUDA CPU GPU行的部分主机代码管理内存分配、数据传输和内核启动,而计算密集型任务则在上并行执行GPU内核函数使用修饰符定义的特殊函数,从主机调用但在设备上执行内核启__global__动时需指定执行配置(线程块数量和每块线程数),决定了并行度线程层次线程组织为三级层次线程、线程块和网格同一块内的线程可共享内CUDA存并同步,不同块则相对独立这种层次结构映射到硬件架构,实现高GPU效执行内存管理程序员需显式管理主机内存和设备内存间的数据传输优化内存访问模式和减少传输开销是性能调优的关键CUDA数据并行与任务并行数据并行任务并行数据并行将数据集划分为多个部分,不同处理单元执行相任务并行将问题分解为不同功能的子任务,这些任务可能同操作但处理不同数据块这种方法特别适合处理大型均操作不同数据并执行不同代码适用于异构工作负载和具匀数据集,如矩阵运算、图像处理和深度学习有复杂依赖关系的应用,如编译器、游戏引擎和工作流系统数据并行的优势在于实现简单、负载均衡、通信模式规则,例如矩阵乘法可以轻松拆分为独立的子矩阵计算但要求任务并行能更好地利用异构计算资源,适应动态变化的工数据可分割且子任务间依赖性低作负载,但负载均衡更具挑战性,任务调度和通信也更复杂现代应用常结合两种模式在高层次采用任务并行处理不同计算阶段,而在每个阶段内部使用数据并行处理大规模数据深度学习框架如就采用这种混合方法,将不同网络层视为任务,而每层内部计算则采用数据并行模式TensorFlow并行算法设计原则问题分解将问题分解为可并行执行的子任务是第一步分解方法包括域分解(划分数据)和功能分解(划分任务)好的分解应最大化并行度,最小化子任务间依赖例如,图像处理可按像素块分解,而复杂工作流则按处理阶段分解通信设计确定子任务间需要交换哪些数据,何时交换,以及如何组织通信以最小化开销局部性原则至关重要算法应尽可能使用本地数据通信模式应考虑底层硬件特-性,如网络拓扑和内存层次聚合与同步设计如何将并行计算的结果合并为最终输出,以及在需要时如何同步执行过度同步会导致处理器等待,降低并行效率;而同步不足可能导致结果不确定平衡是关键负载均衡确保计算任务均匀分布在所有处理单元上,避免部分处理器忙碌而其他空闲的情况技术包括静态分区、工作窃取和动态任务分配不均衡的工作负载是性能瓶颈的主要来源并行排序算法并行归并排序并行快速排序并行归并排序采用分治策略,将数组分为多个子数组由不并行快速排序选择一个基准值将数组分区,然后并行处理同处理器并行排序,然后归并结果它利用了归并排序的各子数组主要挑战是负载均衡,因为分区可能不均匀,递归特性,自然适合并行化导致处理器利用率不平衡在核处理器上,对十亿个元素排序可获得约倍加速采用随机选择或中值基准技术可改善负载均衡在实际测85-6比,效率约通信开销主要发生在归并阶段,这试中,对均匀分布的数据可获得接近线性的加速比,但对70-75%成为扩展到数百处理器时的瓶颈有序或逆序数据则表现较差并行样本排序是另一种高效方法,通过全局采样确定分区边界,然后重新分配元素使每个处理器处理特定范围的键值在大规模系统上,它通常优于上述方法,中国天河超级计算机使用的并行排序库就采用了这种技术,可在数千个节点上高-2效排序级数据PB并行矩阵乘法数据分布策略通信优化硬件适配并行矩阵乘法的关键是算法和算法矩阵乘法对缓存和内存Cannon Fox选择有效的数据分布方通过优化通信模式减少带宽高度敏感针对特式常见策略包括二维数据传输,特别适合二定架构的优化,如块大块分解将矩阵划分为小维处理器网格这些算小调整、数据预取和指块分配给处理器、行分法在初始数据分布后,令集优化,可获得数倍解和列分解二维块分每轮仅需要局部通信,性能提升特别适GPU解通常具有最佳的通信显著降低了全局通信开合矩阵运算,提供比-计算比,但实现更复杂销高倍的性能CPU10-30在实际性能测试中,并行矩阵乘法展现了出色的可扩展性对两个×矩阵的乘法,核集群相比单核可获得接近倍的加速比10,00010,0006458并行效率约当集成时,性能进一步提升,单90%GPU NVIDIA V100GPU卡可提供超过的双精度矩阵乘法性能14TFLOPS并行搜索与遍历问题划分并行探索将搜索空间或图结构划分为相对独立的子部分多个处理单元同时搜索不同区域结果整合4边界交换合并局部搜索结果形成全局解决方案处理单元交换边界信息确保完整性并行广度优先搜索是图算法并行化的典型案例传统按层次遍历图,这本身就暗示了并行化机会同一层的所有节点可以并行处理然而,真BFS BFS-正的挑战在于边界节点的处理和负载均衡在大规模社交网络分析中,并行能够高效处理包含数十亿节点和边的图阿里巴巴的图计算引擎在处理电商网络关系时,通过优化的并行图算法将分BFS析时间从数小时缩短至分钟级别百度的搜索引擎也大量使用并行图算法进行网页排序和相关性分析,支持千万级查询的实时响应负载均衡与调度方法静态负载均衡动态负载均衡自适应技术任务在执行前预先分配给处理单元,分配运行时根据实际工作负载调整任务分配结合静态和动态策略,根据运行时反馈调方式固定不变适用于工作量可预测且均适用于不规则问题和异构系统虽然引入整分区粒度和调度策略这些技术监控系匀的场景,如规则网格上的有限元计算了额外开销,但对于复杂应用通常是必要统性能指标,在检测到不平衡时触发任务优点是开销小,缺点是不适应动态变化的的包括集中式调度(中央任务队列)和重分配在迭代算法和长时间运行的模拟工作负载常见方法包括块循环分配和递分布式方法(工作窃取)中特别有效归二分法负载均衡对并行性能的影响不可低估在一个节点集群上运行的蒙特卡罗模拟实验中,简单的静态分配导致最慢处理器比最快的慢倍,整体性323能受限于最慢节点应用工作窃取算法后,负载差异降至以内,整体加速比提高了倍20%
2.4并行算法性能评估实际加速比实际加速比p=
0.95p=
0.90案例并行编程MapReduce输入分割大型数据集被划分为固定大小的块(默认),分布在集群的不同节点上128MB确保数据块有多个副本,提高可靠性和数据局部性框架尽量将HDFS MapReduce计算任务调度到数据所在节点,减少网络传输阶段Map每个任务独立处理一个输入分片,将数据转换为键值对形式例如,在词频Map统计中,函数处理文本块,为每个单词生成键值对任务完Map word,1Map全并行,无需相互通信与Shuffle Sort系统按键对输出进行排序和合并,然后将具有相同键的所有值发送给同Map一个任务这一阶段涉及大量数据传输,通常是作业的Reduce MapReduce性能瓶颈阶段Reduce每个任务处理一组键及其关联的所有值,生成最终结果继续词Reduce频统计的例子,函数将接收并累加所有,输Reduce word,[1,1,1,...]1出word,count案例深度学习中的并行训练数据并行模型并行混合并行训练数据被划分给多个处理器,每个处神经网络模型被拆分,不同部分分配给结合上述方法,如在节点内使用模型并理器拥有完整模型副本但处理不同的数不同处理器例如,一个大型行,节点间使用数据并行现代框架如据批次每步迭代后,梯度通过集体通模型可按层分割,或将注和支持Transformer PyTorchDDP Megatron-LM信(如)合并,然后更新所意力头分布在多个上这对超大模这种复杂配置,使训练超大规模模型成allreduce GPU有模型副本这是最常用的方法,易于型(如,参数)是必要为可能GPT-3175B实现且扩展性良好的,单个无法容纳完整模型GPU百度的在节点集群上训练模型(参数)时,采用混合并行策略,实现了接近的扩展效率阿里达摩PaddlePaddle128GPU ERNIE
3.010B90%院的模型(参数)训练则使用张量并行与流水线并行结合的方式,在个上进行,单步迭代时间仅为单配置M6100B512NVIDIAV100GPU GPU的倍
1.8常见并行编程错误与调试竞态条件死锁多个线程同时访问共享数据且至少一多个线程循环等待彼此持有的资源,个在写入时产生结果依赖于线程执导致程序永久挂起遵循锁层次规则行顺序,导致不确定性使用互(总以相同顺序获取锁)可避免死锁bug斥锁或原子操作可防止竞态条件检测工具可识别潜在死锁路径通信错误内存问题分布式程序中的消息丢失、顺序错误并行程序中常见内存泄漏、越界访问或格式错误确保发送接收操作匹4和释放后使用等问题这些错误在并/配且使用正确的标签和数据类型至关行环境中更难调试,因为它们可能只重要在特定线程交错时出现并行程序调试工具提供了特殊功能,帮助开发者诊断这些复杂问题和等调试器支持同时检查多个线程状态,TotalView DDT追踪消息传递并可视化线程间关系和的可自动检测竞态条件和锁使用错误Intel ThreadChecker ValgrindHelgrind并行性能分析基础响应时间吞吐量并行系统的关键性能指标之一是响应时间(也称为延迟或吞吐量衡量系统在单位时间内能够处理的任务数量,对批执行时间),即从提交任务到获得结果所需的时间响应处理系统和服务器尤为重要高吞吐量对处理大规模数据时间直接影响用户体验和交互式应用的可用性集和支持多用户至关重要在实时系统中,例如自动驾驶和金融交易,对响应时间有阿里云的系统在双十一期间峰值处理能力MaxCompute严格要求,可能需控制在毫秒级通过增加处理器数量,达到每秒数百万查询,通过水平扩展实现吞吐量的线性增理想情况下可将响应时间降低到原来的长系统设计时需平衡响应时间和吞吐量,有时两者会相1/n互制约性能分析不仅关注平均情况,还需考虑性能波动和尾延迟在大规模系统中,即使的请求性能良好,剩余的异常99%1%延迟也会严重影响用户体验诊断性能问题需要综合工具如性能计数器、事件跟踪和时间线分析,识别潜在瓶颈定律Amdahlp=
0.99p=
0.95p=
0.90p=
0.75定律Gustafson可扩展加速比数学模型定律提出了可扩展加可扩展加速比,其Gustafson=n-αn-1速比概念,认为随着处理器数量中是处理器数量,是串行部分nα增加,应用会处理更大规模的问题,比例(相对于并行执行时间)这而不是在固定问题上追求更短时间一公式表明,如果串行部分保持不这一观察更符合实际应用场景,许变而并行部分随处理器数量扩展,多科学计算会随资源增加而扩大规加速比可以接近线性增长模实际应用定律特别适用于数据密集型应用,如气候模拟、分子动力学和大规Gustafson模数据分析这些领域的问题规模可以灵活调整,随计算资源增加而处理更精细的网格或更大的数据集比较定律和定律,前者假设固定问题规模,关注强扩展性;后者Amdahl Gustafson考虑问题规模随处理器数量增长,关注弱扩展性实际应用中,理解这两种视角的区别至关重要,它们决定了系统扩展策略和性能期望测速比与加速比实测98%强扩展效率处理器相比单处理器的效率16n=1694%弱扩展效率每处理器固定问题规模时的扩展效率n=
6415.7x最大加速比在处理器上观察到的实际加速比
162.8x加速比GPU相比核,单的性能提升16CPU GPU并行性能测试数据揭示了实际系统的扩展行为在中国科学院计算所的测试平台上,矩阵乘法算法展现了接近理想的强扩展性,处理器配置达到了
1615.7倍加速比(效率)这表明算法通信开销极低,几乎所有计算都可并行处理98%相比之下,多体物理模拟在弱扩展测试中(每处理器固定粒子数)随处理器增加表现出效率下降从处理器的效率降至处理器的,主要受全899%6494%局通信增加影响有趣的是,加入后性能模式显著改变,单个相当于核的倍性能,但之间的扩展效率略低,可GPU NVIDIAV100GPU16CPU
2.8GPU能是受带宽限制PCIe并行效率与可扩展性模拟CFD影响性能的主要因素通信开销1处理器间数据交换的时间成本内存访问延迟从内存获取数据所需的等待时间负载不均衡处理器间工作分配不平衡导致的等待同步开销处理器之间协调和等待的时间损失通信开销通常是大规模并行系统中最主要的性能瓶颈在千核以上系统中,集体通信操作如全局归约可能消耗超过的执行时间通信延迟对细粒度并行尤为关键,50%而带宽则限制大数据传输速度内存访问模式对性能的影响同样不可忽视随机访问相比连续访问可能慢倍以上,而跨节点的远程内存访问比本地访问慢倍优化数据局部性和使用10NUMA3-5合适的缓存策略至关重要负载均衡问题在不规则计算(如自适应网格和图分析)中尤为突出,可能导致大部分处理器闲置等待少数超载处理器并行应用的负载均衡方法静态分配策略动态分配策略静态负载均衡在程序开始时确定任务分配,直至程序结束动态负载均衡在运行时根据实际工作负载调整任务分配不再变化这包括简单的循环分配(轮询)、块分配(连这包括工作窃取(空闲处理器从繁忙处理器偷取任务)、续块)和递归二分法(分治递归)这些方法开销小,易中央任务队列和分层工作池等方法虽然引入了调度开销,于实现,但不适应动态变化的计算需求但对不规则计算通常是必要的在规则网格上的有限差分计算等问题上,静态分配可实现华为云的分布式训练系统采用动态负载均衡,处理数据倾接近最优的性能例如,中国天气预报系统采用静态网格斜问题,在模型训练时降低了等待时间阿里巴巴的30%分解,在多个节点上表现出以上的并行效率则结合多层次调度策略,确保集群资源高100090%MaxCompute效利用混合并行优化技术应用层优化算法选择与问题分解策略编程模型优化混合模型与通信模式设计系统层优化3进程映射与资源分配底层硬件优化协同与内存访问优化CPU/GPU混合并行编程结合了多种并行模型的优势,特别是的组合在现代超算系统中非常流行在这种模式下,用于节点间通信,而用于节点内MPI+OpenMP MPIOpenMP的多线程并行这种方法减少了进程数量,降低了通信开销和内存消耗MPI中国科学院的大气模式采用混合并行后,在神威太湖之光上将计算时间缩短了通过将原来的纯实现改为,每个计算节点使用一GAMIL2·45%MPI MPI+OpenMP个进程配合个线程,显著减少了集体通信开销并提高了内存利用效率类似地,百度的深度学习框架融合了数据并行、模型并行和MPI64OpenMP PaddlePaddle流水线并行,实现了级数据的高效训练TB性能调优工具与方法性能分析工具性能建模现代性能分析工具如、性能建模通过数学模型预测程序在Intel VTune和能够捕获不同配置下的行为常用模型包括NVIDIA NsightTAU详细的性能数据,包括路径交轨分析,可量化计算、通信CPU/GPU利用率、缓存命中率、内存带宽和和开销性能模型帮助开发者I/O通信模式这些工具支持时间线视在实际部署前评估优化策略和系统图、热点分析和调用图,帮助开发扩展性者识别瓶颈自动优化技术自动调优工具可探索大量可能的优化参数组合,如块大小、线程数和内存布局基于机器学习的方法逐渐取代穷举搜索,显著提高了调优效率一些编译器还支持自适应优化,根据运行时反馈调整代码生成以一个实际案例为例,某科学计算应用在性能分析中发现等待时间占总运行时间MPI的使用工具的通信矩阵分析显示,这主要由不平衡的数据分布导致通过64%TAU实施动态负载均衡和重新设计通信模式,等待时间降至,整体性能提升了倍23%
2.1容错与弹性并行计算检查点与恢复冗余计算最常用的容错技术是周期性保存应用状通过在多个处理器上执行相同计算,可态(检查点),在发生故障时从最近检实现无中断容错常见方法包括双重三/查点恢复检查点可分为全局协调检查重模块冗余()和算法级冗DMR/TMR点(所有进程同时保存一致状态)和非余()冗余计算在关键应用如ABFT协调检查点(各进程独立保存)检查航天系统中广泛使用,尽管会增加资源点频率需权衡开销与故障恢复时间消耗自适应故障处理现代弹性计算框架如能够自动处理节点故障,重新调度丢失任务并恢复缓存数据Spark作业在节点失败时会自动在其他节点上重新执行受影响的任务,对用户完MapReduce全透明随着系统规模增大,故障变得不可避免在节点集群中,平均每天会有个节点10,0001-2出现硬件故障如果无容错机制,这将导致大部分长时间运行的作业无法完成中国神威太·湖之光超级计算机采用多级检查点策略,支持百万核规模作业的可靠执行,平均每小时系6统会经历一次计算节点故障并行计算在科学研究中的应用气候模拟蛋白质折叠模拟基因组分析气候模拟是并行计算最具挑战性的应理解蛋白质如何折叠成特定三维结构现代测序技术每天产生级数据,需TB用之一,需要解决描述大气、海洋、是生物信息学的核心挑战分子动力要大规模并行处理华大基因的并BGI陆地和冰层相互作用的复杂方程组学模拟需要计算分子中每个原子间的行分析系统可在数小时内完成全基因中国气象科学研究院的模式相互作用,计算量巨大上海超算中组比对和变异检测,加速了疾病基因GRAPES可在公里分辨率下模拟区域天气,心的系统支持每秒飞秒级的模拟,发现和个性化医疗研究
0.5π支持极端气象精准预报帮助研究人员探索蛋白质功能机制工业界中的并行计算并行计算在现代工业设计和运营中扮演关键角色金融行业依靠高性能集群进行风险分析和算法交易,如中金公司的蒙特卡洛模拟系统可在分钟级评估复杂投资组合风险,处理数百万种市场情景汽车行业中,自动驾驶算法开发依赖大规模并行计算百度平台利用集群训练感知模型,并行模拟测试覆盖数亿公里Apollo GPU虚拟道路航空航天领域,商用飞机设计需要复杂的计算流体力学()模拟,商飞的气动设计使用上千核心并行计算,CFD C919大幅减少了风洞试验次数石油勘探中,并行地震数据处理和储层模拟帮助中石油提高了采收率,实现精准钻探并行计算在人工智能的作用175B大模型参数量规模,需要大量并行资源训练GPT-
328.5PF深度学习性能现代系统每秒处理能力AI27x并行训练加速使用与单相比的加速比1024GPU GPU98%推理准确率图像识别达到超人类水平并行计算已成为人工智能发展的关键推动力大型语言模型如百度文心一言、阿里通义千问等需要数百协同训练数月时间并行计算不仅加速了训练过GPU程,还使更大规模模型成为可能,从而提升了模型能力和泛化性在图像和语音识别领域,并行处理实现了实时分析腾讯优图实验室的人脸识别系统可在毫秒级处理视频流,支持亿级用户同时验证深度学习推理服务通过批处理和模型并行提高吞吐量,单服务器支持数千并发请求异构计算平台结合、和专用加速器(如华为昇腾、寒武纪芯片)进一步优化性CPUGPUAI能和能效比并行计算在大数据分析数据获取与存储数据清洗与转换1分布式文件系统和数据库并行处理级NoSQL PB并行流程处理原始数据ETL数据可视化与决策分析与挖掘交互式分析支持实时业务决策并行算法发现数据中的模式和关系大数据分析平台如通过内存计算和执行模型实现高效并行处理阿里云在双十一期间处理峰值达每秒百万次查询,底层依Apache SparkDAG MaxCompute靠数万服务器并行执行和机器学习任务百度的分析引擎支持级数据的亚秒级响应,通过列式存储和向量化执行实现高并发分析SQL PaloPB图计算是大数据分析的重要分支,处理社交网络、知识图谱等复杂关系数据腾讯的图计算引擎每天处理超过亿社交关系更新,应用并行图算法TGraph1000快速识别社区结构和影响力传播路径华为为时序数据分析优化了并行查询执行,实现物联网数据的高吞吐实时分析GaussDB云计算与虚拟化中的并行资源虚拟化云计算通过虚拟化技术将物理服务器资源池化,实现多租户共享和动态分配现代虚拟化平台如和支持虚拟并行执行,同时保证租户间隔离阿里云KVM VMwareCPU单物理机可支持数百虚拟并发运行ECS CPU容器编排等容器调度系统实现应用的分布式部署和自动扩缩容核心调度算法考虑资源利用率、亲和性和负载均衡,优化上万容器的并行运行腾讯云集群支持超Kubernetes TKE过节点的统一管理5000网络虚拟化软件定义网络将控制面与数据面分离,实现网络资源的高效并行管理华为云支持复杂网络拓扑的快速构建和实时优化,每秒处理数百万网络流量规则更新SDN VPC云计算平台本身就是大规模并行系统的典范阿里云飞天操作系统管理着超过一百万台服务器,实现计算、存储和网络资源的统一调度其核心调度算法综合考虑服务级别协议、资源利用率和故障域,每秒完成数万任务的调度决策互联网服务中的并行处理搜索引擎搜索引擎如百度和是并行计算的典范索引构建阶段,网页爬虫并行抓取和处Google理数十亿网页;查询处理阶段,请求并行分发到数千服务器,每台服务器搜索自己负责的索引片段,最后合并结果这种架构允许百度每天处理数十亿次搜索查询电子商务平台阿里巴巴的电商平台在双十一期间需处理峰值万笔秒的交易系统采用微服务
34.5/架构,将用户请求并行分发到数万服务实例数据库层采用分片技术,将表水平拆分到多个节点,支持并行事务处理和实时库存更新流媒体服务腾讯视频和爱奇艺等流媒体平台利用并行处理实现视频转码和分发一部高清电影可并行转为多种分辨率和码率,适应不同网络条件内容分发网络将视频并行推CDN送到全国各地的边缘节点,减少延迟并提高吞吐量在线游戏网易等大型游戏公司的多人在线游戏服务器采用分区并行架构游戏世界被划分为多个区域,由不同服务器负责处理,玩家跨区域移动时数据动态迁移物理模拟、行AI为和玩家交互在后端并行处理并行计算与区块链技术分布式共识挖矿与计算能力区块链的核心是分布式共识算法,比特币等区块链依靠并行哈PoW如工作量证明、权益证明希计算竞争记账权早期使用PoW和委托拜占庭容错挖矿,后演变为、PoS dBFTCPUGPU这些算法允许分散的节点在无中心,最终发展到专用矿FPGA ASIC协调的情况下就交易顺序达成一致机比特币网络总算力已超过中国自主开发的长安链采用新型共(每秒百亿亿次300EH/s300识算法,每秒处理超过万笔交哈希计算),是地球上最大的专用10易并行计算系统智能合约执行以太坊和蚂蚁链等平台支持智能合约,这些程序在区块链上并行验证和执行为提高吞吐量,研究人员开发了分片技术,将区块链状态和交易处理分散到多个子链,实现并行执行和验证区块链本质上是一种新型分布式并行计算范式,结合了密码学、共识算法和点对点网络与传统并行系统不同,区块链面临独特挑战,如需在互不信任的节点间达成一致,同时保证数据一致性和安全性并行计算的前沿与趋势量子并行计算代表了计算范式的根本变革量子比特利用叠加态可同时表示多个状态,理论上能够解决经典计算机难以处理的特定问题中国科学技术大学的九章量子计算机在高斯玻色取样问题上比世界最快超级计算机快倍然而,量子退相干和纠错仍是主要挑战1014受人脑启发的神经形态计算使用类似突触和神经元的硬件结构,实现高能效的并行处理华为、寒武纪等公司正研发专用芯片,采用新AI型计算架构和存内计算技术,在特定任务上提供高度并行性能在异构融合方向,处理器设计趋向融合多种计算范式,如内核、加CPU AI速器和可编程逻辑,支持应用特定优化光子计算和分子计算等新兴技术也有望在特定领域带来并行计算突破总结与展望课程核心内容回顾本课程系统介绍了并行计算的基本原理、系统架构、编程模型和性能优化技术我们学习了分类法、共享内存与分布式内存架构、与编程模型,以及Flynn OpenMPMPI定律等基础理论通过并行算法案例和实际应用分析,理解了并行计算在科学Amdahl研究、工业设计和信息技术中的关键作用技术发展趋势并行计算正朝着更高度异构化、专业化和智能化方向发展异构计算融合、CPU和专用加速器,为不同应用提供最适合的计算资源边缘计算与云计算协同,GPU实现分布式智能量子计算、神经形态计算等新范式也将在特定领域带来革命性变化未来学习路径建议进一步学习和等异构编程技术,深入研究分布式机器学习框CUDA OpenCL架如和的并行优化机制同时关注量子算法、存内计算等PyTorch TensorFlow前沿领域,拓展并行计算视野在实践中,参与开源项目和超算竞赛是提升实战能力的有效途径并行计算已从专业领域走向主流应用,成为现代计算基础设施的核心随着计算需求持续增长,掌握并行计算原理和技术将为计算机专业人才提供重要竞争力希望本课程为您打开并行世界的大门,激发探索更深层次计算技术的兴趣。
个人认证
优秀文档
获得点赞 0