并行算法中的基本概念
计算机科学中的并行计算算法分析

计算机科学中的并行计算算法分析一、引言随着科技的发展和计算机性能的提高,现代计算机应用对计算速度的需求越来越高,为了提高计算机的性能,计算机科学中的并行计算显得尤为重要。
并行计算是指多个计算单元同时工作,通过合理的任务分配和协作,提高整个计算系统的计算速度。
本文将从并行计算的基本概念入手,对计算机科学中的并行计算算法进行分析和探讨。
二、并行计算的基本概念并行计算是指多个计算单元同时工作的一种计算方法。
在并行计算系统中,这些计算单元可以是同一台计算机中的多个CPU,也可以是连接在网络中的多个计算机。
并行计算通过将大型的计算任务分成多个小任务,分配给不同的计算单元来完成计算任务,从而提升整个计算系统的计算速度。
并行计算的优点在于它具有高效能、高可靠性和高可扩展性的优点。
通过利用多个计算单元的计算能力,可以显著缩短计算任务的处理时间,提高计算精度和质量。
此外,因为并行计算使得任务可以同时进行,因此它具有更高的可靠性和更好的容错性。
最后,由于并行计算可以扩展到更多的计算单元,因此它具有更高的可扩展性和灵活性,可以根据需要随时扩展计算资源。
三、并行计算的算法并行计算的核心在于如何设计高效的并行计算算法。
在实际应用中,有很多种并行计算算法,我们将根据不同的计算类型进行分析和讨论。
1、并行排序算法并行排序算法是一种基本的并行计算算法,用于对大量数据进行排序操作。
在并行排序算法中,数据被划分成多个小块,然后每个块都由一个计算单元进行排序。
最后,使用归并排序将这些小块有序地合并成一个有序数据集。
并行排序算法可以显著降低排序操作的时间复杂度,提高排序算法的效率。
2、并行图像处理算法并行图像处理算法是一种针对大规模图像数据的并行计算算法。
在并行图像处理中,数据被划分成多个小块,然后每个块都由一个计算单元进行图像处理。
最后,将处理后的小块再进行拼接成一张完整的图片。
并行图像处理算法可以显著提高大规模图像处理的速度,提高图像分析和识别的效率。
并行计算的基本概念

并行计算的基本概念并行计算是指同时执行多个计算任务的一种计算方法。
与串行计算相比,并行计算可以大幅提高计算效率,减少计算时间。
在并行计算中,多个任务可以被同时执行,任务之间可以相互独立执行或者相互协作完成。
任务并行是指将一个计算任务拆分成多个子任务,在不同的处理器上并行执行。
每个子任务都是相对独立的,可以独立地进行计算,并最终将计算结果合并。
任务并行适用于将一个大型计算任务分解成多个子任务并行执行的情况,每个子任务之间没有数据依赖。
数据并行是指将问题的数据集合分成多个部分,在不同的处理器上并行执行相同的计算任务。
每个处理器都负责处理部分数据,并最终将计算结果合并。
数据并行适用于将一个相同计算任务应用于多个数据元素的情况,每个处理器之间没有数据依赖。
流水线并行是指将一个计算任务拆分成多个阶段,在不同的处理器上并行执行不同的阶段,任务的执行流经过多个处理器,并最终将计算结果合并。
流水线并行适用于一个计算任务可以被划分成多个可以并行执行的阶段的情况,每个阶段之间有数据依赖。
并行计算还需要考虑负载均衡和数据同步的问题。
负载均衡是指将任务分配给不同的处理器时,尽量确保各个处理器的负载大致相当。
如果负载不均衡,会导致一些处理器的利用率较低,从而降低整体的计算效率。
负载均衡可以通过动态调整任务分配策略或者任务划分的方式来实现。
数据同步是指在并行计算中,处理器之间需要共享或者交换数据的过程。
数据同步主要包括数据传输和数据通信两个环节。
数据传输是指将数据从一个处理器传输到另一个处理器的过程,可以通过共享内存、消息传递或者文件系统等方式实现。
数据通信是指处理器之间交换数据的过程,可以通过消息传递等方式实现。
并行计算除了可以在多个处理器上进行,并且还可以通过分布式计算系统进行。
分布式计算是指将计算任务分布到不同的计算节点上,每个计算节点可以有多个处理器,通过网络连接进行通信和协作。
分布式计算可以进一步提高计算效率和扩展性,适用于处理大规模计算任务的场景。
并行计算

第一部分:并行计算的概念(1)并行计算:是指在并行计算机上,将一个应用分解成多个任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加快求解速度,或者提高求解应用问题规模的目的。
(2)并行计算的主要研究目的:加快求解问题的速度;提高求解问题的规模(3)并行计算必须具备的基本条件:并行计算机;应用问题必须具有并行度;并行编程(4)并行计算的主要研究内容并行计算机的高性能特征抽取;并行算法的设计与分析;并行实现技术(消息传递平台MPI、共享存储平台OpenMP);并行应用(最终目的)(5)并行计算机的3要素:结点,互联网络,内存(6)并行计算机的访存模式:UMA均匀存储访问:内存模块与结点分离,分别位于互联网络的两侧,所有结点均匀共享,各结点访存机会均等,例如对称多处理共享存储并行机 SMPNUMA非均匀存储访问:内存模块局部在各个结点内部,所有局部内存模块构成并行机的全局内存模块,所有结点任意访问内存模块,但速度和时间不同,例如分布共享存储并行机 DSM分布访存模型:非均匀访存模型不同的是,各个结点的存储模块只能被局部CPU 访问,对其他结点的内存访问只能通过消息传递程序设计来实现混合访存模型COMA(Cache-Only Memory Access)模型是全高速缓存存储访问CC-NUMA(Coherent-Cache Nonuniform Memory Access)是高速缓存一致性非均匀存储访问模型(7)并行计算机的分类:1.根据指令流和数据流个数的不同,通常分为四类:单指令流单数据流(SISD),单指令流多数据流(SIMD),多指令流单数据流(MISD),多指令流多数据流(MIMD)2.按内存访问模型、微处理器和互联网络的不同,又分为:并行向量机(PVP,Parallel Vector Processor);对称多处理共享存储并行计算机(SMP,Symmetric Multiprocessor);大规模并行计算机(MPP,Massively Parallel Processor);机群(Cluster);分布式共享存储并行计算机(DSM,Distributied Shared Memory);(8)并行计算机的结构模型:内存模块与结点分离内存模块位于结点内部(9)并行编程环境:消息传递,共享存储,数据并行(10)MPI:MPI是一个库,而不是一门语言,它遵守所有对库函数/过程的调用规则,和一般的函数/过程没有什么区别;它是一种消息传递编程模型,它的最终目的是服务于进程间通信这一目标的(11)并行编程模式:主-从式,单程序多数据流,数据流水线,分治策略(12)并行算法的分类:根据运算基本对象的不同可分为数值并行算法:主要为数值计算方法而设计的并行算法;非数值并行算法,主要为符号运算而设计的并行算法根据并行进程间相互执行顺序关系的不同可分为:同步并行算法:进程间由于运算执行顺序而必须相互等待的并行算法;异步并行算法:进程间执行相对独立,不需要相互等待的一种算法;独立并行算法:进程间执行是完全独立的,计算的整个过程不需要任何通信根据各进程承担的计算任务粒度的不同,可分为:细粒度并行算法,通常指基于向量和循环级并行的算法;中粒度并行算法,通常指基于较大的循环级并行;大粒度并行算法,通常指基于子任务级并行的算法。
并行计算.2模型

PRAM模型
• 基本概念 – PRAM(Parallel Random Access Machine,随机存取并行机器 随机存取并行机器) 随机存取并行机器 模型由Fortune和Wyllie1978年提出,又称SIMD-SM模型。也称为 共享存储的SIMD模型 模型,是一种抽象的并行计算模型,它是从串行 共享存储的 模型 的RAM模型直接发展起来的。 – 在这种模型中,假定存在一个容量无限大的共享存储器,有有限 个或无限个功能相同的处理器,且他们都具有简单的算术运算和 逻辑判断功能,在任何时刻个处理器都可以通过共享存储单元相 互交互数据。
PRAM模型
• 计算能力比较 – 上面的模型中,PRAM-EREW是功能最弱的计算模型,而 PRAM-CRCW是最强的计算模型,PRAM-EREW可logp倍模拟 PRAM-CREW和PRAM-CRCW , 令T表示某一并行算法在并行计 算模型M上的运行时间,则有
TEREW ≥ TCREW ≥ TCRCW
PRAM模型
• 缺点 – 模型中使用了一个全局共享存储器,且局存容量较小,不足以描 述分布主存多处理机的性能瓶颈,而且共享单一存储器的假定, 显然不适合于分布存储结构的MIMD机器; – PRAM模型是同步的,这就意味着所有的指令都按照锁步的方式 操作,用户虽然感觉不到同步的存在,但同步的存在的确很耗费 时间,而且不能反映现实中很多系统的异步性; – PRAM模型假设了每个处理器可在单位时间访问共享存储器的任 一单元,因此要求处理机间通信无延迟、无限带宽和无开销,假 定每个处理器均可以在单位时间内访问任何存储单元而略去了实 际存在的合理的细节,如资源竞争和有限带宽,这是不现实的; – PRAM模型假设处理机有限或无限,对并行任务的增大无开销; – 未能描述多线程技术和流水线预取技术,而这两种技术又是当今 并行体系结构用的最普遍的技术。
并行算法设计及编程基本方法

第2卷第4期零陵学院学报(教育科学) V ol. 2 No.4 2004年8月 Journal of Lingling University Aug. 2004并行算法设计及编程基本方法孙兴文(永州职业技术学院,湖南永州,425006)摘 要: 并行算法是指一次可执行多个操作的算法。
对并行算法的研究现在已发展为一个独立的研究领域。
很多用串行算法解决的问题也已经有了相应的并行算法。
在本文,我们阐述了一些简单的并行计算以说明并行算法的一些基本概念、应用和编程方法。
关键词: 并行算法; 效率 ;编程*中图分类号: TP311 文献标识码: A 文章编号:1671-9697(2004)04-0182-031. 并行算法设计1.1 并行算法的基本概念所谓并行,是只有一个以上的事件在同一时刻伙同时间段内发生,有人把并行分为几类:数据并性行,分布式并性行与人的并行性,世界上客观事物的发展过程很多是并行的,彼此相对独立,相互又有一定的联系和制约。
1.2 并行算法的目标从计算复杂性的角度来看,一个算法的复杂性表示为空间复杂性和时间复杂性两个方面。
并行算法的目标是尽可能减少时间复杂性,通常是增加空间复杂性(如增加空间的维数及增加处理器的台数)来实现。
从算法树的结构来看,通常的串行算法树“深而窄”。
递推算法是串行算法本质上是为一维问题设计的,而不少高维问题的计算本质上仍借助一维的张量积形式。
体现在矩阵计算则是70年代稀疏矩阵技术的广发应用。
并行算法树的结构则截然不同,为达到把时间复杂性转化为时间复杂性的目的,并行算法树采用“浅而宽”的结构,即每时刻可容纳的计算量相应增加,使整个算法的步数尽可能减少。
适当增加空间复杂性(如引入较复杂的基底,增加空间维数等),是不少并行算法所实际采用的有效的方法。
1.3 加速比定率与可扩展性顾名思义,并行加速比是表示采用多个矗立起计算速度所能得到的加速的倍数。
设t seq表示用串行机求解某个计算问题所需的时间,t P是用p个处理器求解该问题所需的时间。
计算机编程并行计算基础知识了解并行计算的概念和并行算法

计算机编程并行计算基础知识了解并行计算的概念和并行算法计算机编程并行计算基础知识:了解并行计算的概念和并行算法计算机编程是一个广泛而深入的领域,而并行计算是其中一个重要的概念。
在本文中,我们将介绍并行计算的基础知识,包括并行计算的概念和并行算法。
一、并行计算的概念并行计算是指在多个处理器或计算机上同时执行多个计算任务的过程。
与之相反的是串行计算,即在单个处理器或计算机上依次执行计算任务。
并行计算可以提高计算速度和效率,特别适用于处理大规模的数据和复杂的计算任务。
并行计算的主要优点包括:1. 提高计算速度:通过同时执行多个计算任务,可以大大缩短计算时间。
2. 提高计算效率:通过充分利用多个处理器或计算机的计算资源,可以更有效地完成计算任务。
3. 处理大规模数据:并行计算可以处理大规模的数据集,例如在科学研究、数据挖掘和机器学习等领域中。
二、并行算法并行算法是一种针对并行计算环境设计的算法,旨在充分利用多个处理器或计算机的计算能力。
并行算法可以分为两种类型:数据并行和任务并行。
1. 数据并行:数据并行是指将数据划分为多个部分,在多个处理器或计算机上同时进行计算。
每个处理器独立计算自己的数据,并通过通信来共享必要的结果。
数据并行常用于矩阵乘法、图像处理和模拟等领域。
2. 任务并行:任务并行是指将计算任务划分为多个子任务,在多个处理器或计算机上同时进行计算。
每个处理器独立执行自己的子任务,并通过通信来协调和共享计算结果。
任务并行常用于解决复杂的问题,如搜索、优化和排序等。
并行算法的设计要考虑以下几个方面:1. 任务划分:将计算任务划分为适当的子任务,以利用并行计算环境的处理能力。
2. 数据通信:在并行计算过程中,不同处理器之间需要及时交换和共享计算结果。
3. 数据同步:在并行计算过程中,确保不同处理器之间的计算步骤能够同步进行,避免数据冲突和错误的计算结果。
三、并行计算的应用并行计算在各个领域都有广泛的应用。
堆排序算法并行化的基本想

堆排序算法并行化的基本想法引言在计算机科学中,排序是一项基本操作,堆排序算法是一种高效的排序算法之一。
然而,随着计算机硬件的不断发展,越来越多的并行计算资源变得可用。
为了充分利用这些资源,人们开始研究如何将排序算法并行化,以提高排序的效率。
本文将探讨堆排序算法的并行化方法及其基本思想。
堆排序算法简介堆排序算法是一种基于数据结构“堆”的排序算法。
它的基本思想是将待排序的序列构建成一个最大堆(或最小堆),然后不断地将堆顶元素(最大或最小元素)与堆底元素交换,并调整堆,使得剩余元素重新构建成一个堆。
重复这个过程,直到所有元素都被排序完成。
堆排序算法具有如下特点: - 时间复杂度为O(nlogn),其中n是待排序序列的长度 - 空间复杂度为O(1) - 是一种不稳定的排序算法堆排序算法串行实现在开始讨论并行化的堆排序算法之前,我们首先了解一下串行实现的基本思路。
1. 创建最大堆给定一个待排序序列,首先需要将其构建成一个最大堆。
具体而言,调用Build-Max-Heap函数,它会从最后一个非叶子节点开始,依次将每个子树调整为最大堆。
2. 堆排序一旦构建了最大堆,堆顶元素即为最大值。
将堆顶元素与数组最后一个元素交换,并将堆的大小减1。
然后,调用Max-Heapify函数将剩余元素重新构建成一个最大堆。
重复这个过程,直到堆的大小为1,即所有元素都被排序完成。
堆排序算法并行化的基本想法堆排序算法的串行实现已经足够高效,但在处理大规模数据时,仍然可以进一步提高其性能。
为了实现并行化,我们可以利用多线程或并行处理器同时对多个子树进行排序。
1. 多线程并行化一种实现并行化的方法是利用多线程。
我们可以将整个待排序序列划分为若干子序列,每个子序列由一个线程来处理。
每个线程进行堆排序算法的串行实现,即构建最大堆和堆排序两个主要步骤。
随着每个线程的完成,我们可以将各个子序列的已排序部分进行合并,从而得到最终的有序序列。
2. 并行处理器并行化另一种实现并行化的方法是利用并行处理器,如GPU(图形处理器)或FPGA(现场可编程门阵列)。
掌握并行计算的基本原理与实现方法

掌握并行计算的基本原理与实现方法并行计算可以提高计算机的运算速度和处理能力,对于大规模的数据处理、科学计算、机器学习等领域具有重要的意义。
在并行计算中,任务被分成多个子任务,并且这些子任务可以同时进行计算,以提高整体计算的效率。
本文将介绍并行计算的基本原理和实现方法。
一、并行计算的基本原理在并行计算中,并行性是关键概念。
并行性指的是计算任务可以被划分为多个独立的子任务,并且这些子任务之间可以并行执行,从而达到提高计算效率的目的。
并行计算的基本原理包括任务划分、数据划分、通信和同步等。
1.任务划分:在并行计算中,任务被划分成多个独立的子任务,每个子任务对应一个计算单元进行计算。
任务划分通常是根据任务的特点和计算单元的性能来确定的。
例如,将一些相对独立的计算任务分配给多个计算节点,每个节点负责一部分计算,最后将计算结果进行合并。
2.数据划分:在并行计算中,数据也需要被划分成多个部分,每个计算单元只处理部分数据。
数据划分可以按照不同的方式进行,例如按行划分、按列划分或者按块划分等。
数据划分的目的是将数据均匀地分布到各个计算单元上,以实现数据的并行处理。
3.通信:在并行计算中,各个计算单元之间需要进行通信,以共享数据或者协调计算。
通信的方式可以是消息传递、共享内存或者分布式文件系统等。
通信的效率对于并行计算的性能影响很大,因此需要合理选择通信方式,并设计高效的通信协议。
4.同步:在并行计算中,各个计算单元之间需要进行同步,以保证计算的正确性。
同步操作可以是阻塞式的,即等待其他计算单元完成后再继续执行,也可以是非阻塞式的,即继续执行其他任务而不等待。
同步操作需要根据具体的计算任务和计算单元来定制,以保证并行计算的正确性。
二、并行计算的实现方法根据并行计算的规模和硬件环境的不同,可以选择不同的并行计算实现方法。
常见的并行计算实现方法包括共享内存并行计算和分布式并行计算。
1.共享内存并行计算:共享内存并行计算是指多个计算单元共享同一块内存空间,在同一台计算机上进行并行计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最大化并行度:将互不依赖的任务映射到不同进程
最小化执行时间:临界路径上的任务尽快地分配到 可用进程上
最小化进程间的通信:将依赖关系较强的任务分配 到同一个进程
以上三条有可能发生冲突,串行算法最适合第3条, 但并行度为1,无法充分利用并行机的资源
2020/6/15
13
任务调度(续)
T4
T3
T2
T1
10
➢ 作为参考的串行算法并非最优
➢ 在查找等算法中,并行算法可能提前在某个处理器上 结束
➢ Cache的影响
2020/6/15
18
并行效率:加速比与处理器个数之比
97秒
等待2秒 附加计算1秒
100秒
99秒
Ts=394 Tp=200
附加计算1秒 98秒
Sp=1.9 7
Ef=.98 5
处理器0
处理器1
2020/6/15
均单位操作数称为平均并行度,其值等于整 个任务的总计算量与临界路径的长度之比
在相同分解粒度下,临界路径决定平均并行度 路径上所有任务的计算量之和称为其长度
❖ 一般地,最大并行度与平均并行度都随任务 分解粒度的变细而增加,但并不只与分解粒 度有关,还与子任务间的依赖关系,即任务 图的结构有关
2020/6/15
❖ 在进行任务分解时,子任务间一般存在依 赖关系,可以用任务依赖图来表示
❖ 在进行任务分解时,应尽量减少子任务间 的依赖关系,以提高并行性
2020/6/15
7
任务依赖图的简单例子
T1
T2
T3
T4
T5
T6
T7
T8
T9
2020/6/15
8
粒度
❖ 粒度是一个定性概念,是一个相对概念
❖ 以任务分解为基础,
11
并行度(续)
T4
T3
T2
T1
10
10
10
10
T4
T3
T2
T1
10
10
10
10
T6
T5
9
6
T7 8
T5 6
T6 9
T7 8
平均并行度为63/27
2020/6/15
平均并行度为63/33
12
任务调度
❖ 将任务分配到进程的过程,这里的进程可以理解 为虚构的处理器
❖ 任务依赖图在任务调度时扮演着十分重要的角色
例如,长为n的两独立向量相加时,并行度为n
操作可以指加、减、乘、除等基本运算,也可以 指某一任务级的作业,视具体情况而定
❖ 最大并行度
在任务图中,如果以子任务为单位,则并行度通 常小于总的子任务数
在树型任务图中,最大并行度总等于树叶的数量
2020/6/15
10
❖ 在整个程序并执行行过度程中(,续能)够同时执行的平
2020/6/15
17
加速比
❖ 最佳串行算法在单处理器上的执行时间与并行算 法的执行时间之比,此时S不大于处理器个数
❖ 通常采用已知的最佳串行算法作为参考
❖ 对SPMD程序,为方便起见,有时简单地采用同 一个并行程序在单处理器上的执行时间作为参考
❖ 在后两种定义下,S可能大于处理器个数,称为 超线性加速比,出现这种情况有几个可能
❖ 显然,P1和P2不能并行执行。
2020/6/15
3
数据反相关示例
❖ P1: A=B×C
❖ P2: C=E+D
P1通过变量C数据相关于P2。为保证语义正确性, 必须等P1将变量C读出后,P2方可向变量C进行 写入操作。
❖ 也不可并行化
2020/6/15
4
数据输出相关示例
❖ P1: A=B+C ❖ P2: A=D×E
在对任务进行分解时,子任务的个数决定分解 的粒度
如果小任务多,则称分解是细粒度的,否则称 分解是粗粒度的
❖ 针对并行机的计算能力
如果每个子任务的计算量比较大,则称为粗粒 度并行,否则称为细粒度并行
2020/6/15
9
并行度
❖ 并行度是算法内在的固有属性,与具体的并行机 无关。衡量的是算法中可同时执行的单位操作数
机器规模、问题规模
❖ 机器规模
并行机所含有的处理器个数 并行机的峰值性能
❖ 问题规模
对要处理的问题的总执行时间的衡量
输入输出规模、计算规模、内存需求规模、通 信规模
经常指刻划计算量的一些主要因素。例如,对
稠密线性方程组的求解,有时称矩阵阶数为问
题规模
2020/6/15
1
数据相关性
❖ 定义: 对语句P1和语句P2,若存在变量x 使之满足下述条件之一,则称语句P2依赖 于语句P1,否则P1和P2之间没有数据依 赖关系:
❖ 并行开销包括通信开销、处理器间的同步开销、 由于处理器同步引起的处理器等待时间、为进行 并行计算引入的额外计算所用的时间等
2020/6/15
15
执行时间、并行开销时间(示例)
97秒
等待2秒 附加计算1秒
100秒
99秒
附加计算1秒 98秒
Ts=39 4
Tp=20 0
=6
Ao=3
处理器0
处理器1
10
10
10
P3 P2 P1
P0
T6
P2 9
T5
P0 6
T7
P0 8
❖ 具体映射技术将在以后详细介绍
2020/6/15
14
执行时间、代价、并行开销时间
❖ 串行程序的执行时间Ts
❖ 并行程序的执行时间Tp ;代价PTp
❖ 总并行开销时间To=PTp-Ts
❖ 平均并行开销时间是指总并行开销时间与处理器 个数之比Tp-Ts/p
❖ 数据相关:若xO1且 xI2,即P2使用P1计 算出的x
❖ 数据反相关:若xI1且 xO2,即P1使用x值 先于P2对x的更改
❖ 数据输出相关:若xO1且xO2,即x同时是
P1与P2的输出
2020/6/15
2
数据相关示例
❖ P1: A=B+C
❖ P2: D=A×B
其中,变量A是导致P1和P2发生数据相关的原因。 为了保证程序执行的语义正确性,变量A必须是 先在P1写入存储器后, P2方可读取,即必须先 写后读。
2020/6/15
16
负载平衡
❖ 负载是指处理器上分配到的任务执行所需要的时 间,通常指计算量
❖ 负载平衡是要求每个处理器上的执行时间相等, 这样可以有效减少并行程序的执行时间
❖ 为保证负载平衡,在将任务进行恰当地分解后, 必须将子任务合理地分配到各进程上去,这个过 程称为任务调度,前面已经讲到
❖ 有关负载平衡与任务调度的方法,将在以后详细 介绍
为保证语义正确性,必须保证P1先写入A, 然后允许P2再写入A。
2020/6/15
5
数据相关性判断的伯恩斯坦准则
❖ 如果下面三个条件同时成立
❖ I1∩O2=Φ, ❖ I2∩O1=Φ, ❖ O1∩O2=Φ,
则P1与P2可以并行执行
2020/6/15
6
任务分解
❖ 将整个计算过程分解为许多较小的计算过 程,常用的分解方法有数据域分解、分治 策略,将在后面详细介绍