并行算法性能的度量——基本概念和性能参数(2-1)

一、基本概念(算法及其分类)

算法:加减乘除等基本运算按规定的运算顺序所构成的完整解题步骤

并行算法:适合于并行操作的一类算法的总称。

 并行算法是指在各种并行计算机上求解问题和处理数据的算法,其本质是把多个任务映射到多个处理器中执行。并行算法的实现强烈依赖于计算机硬件环境和软件环境。

并行算法的分类:

1.按运算对象分类

 数值算法、非数值算法;

2.按进程间程序执行的顺序关系分类

 同步算法、异步算法;独立并行算法 (分布式算法

3.按处理机承担的计算任务粒度分类

细粒度并行算法、中粒度并行算法、大粒度并行算法

二、并行计算中时间

1.并行算法运行时间:并行算法在具体并行计算机上求解一个问题所需时间,一般用Tp表示。

 如果并行算法的不同任务进程不能同时开始或同时结束,并行算法运行的时间定义为:第一个任务进程开始执行的时间算起到最后一个任务进程执行完毕所需的时间。

2.输入输出时间:算法运行过程中,某个任务进程从硬盘读取数据文件、输出数据文件到硬盘所需的时间。

3.CPU计算时间:算法运行过程中,某个任务进程完成程序运算指令所需处理机CPU时间。

所有CPU计算时间的综合就是并行算法的CPU时间。

4.并行开销时间:通信开销时间(数据包的形成、发送、接收和解开),任务进程间的同步开销时间,由于同步而引起的处理机空闲的等待时间

5.同步开销时间:在并行算法执行过程中,为了确保各处理机的正确工作,以及对共享可写数据的正确访问,需要在算法程序中适当位置设置同步点。在时间上强行是个执行进程在某一点相互等待而引起的开销。

注:在并行算法设计时,由于额外的开销导致并行算法性能的下降,应该尽量减少额外开销。CPU计算时间大于并行开销时间,所组织的并行算法才有意义。

  对于一个具体的并行算法,组织并行计算之前,应该有一个大概的估计。如果要求输入输出n个数据,I/O时间界的阶应该为O(n);CPU计算时间界的阶为O(t(n));如果要求通信或同步次数,通信为m个数据,同步次数为l,算法并行开销时间界的阶为O(l+m)。

  运行时间界的阶能大致说明求解过程中算法的各个方面的花费,从而判断是否值得对给定问题组织并行计算。

三、问题的规模与分类

问题规模:指问题求解的规模或问题求解的大小。问题规模是衡量并行计算机性能的一个重要参数。可以将问题规模大致分为:输入输出规模、计算规模、内存需求规模和通信(同步)规模。

根据算法实现的难易程度、通信方式,将应用问题分为:同步问题(松散同步问题、非规则松散同步问题)、异步问题、独立并行问题。

四、并行机的规模

并行计算机的规模指某一具体并行计算机所具有的最大计算性能,包括处理机台数、单机性能、网络带宽、整体内存大小、输入输出能力等硬件指标;还涉及操作系统、并行程序设计环境等软件指标

用户更关心的是并行机求解问题的实际性能。然而时间性能依赖于并行机、并行算法、并行程序设计和并行实现技术等多方面因素。在分析并行算法性能时,一般将并行机的规模视为并行机含有的处理器个数。

五、算法度量的其他指标

除运行过程的相关时间、并行机规模和问题规模,对于并行算法的度量指标还包括

1.并行度:算法中可并行执行的单位操作数

操作是计算的基本单位,一般指加减乘除等基本算术运算,也可以指某一任务级的作业。

2.粒度:粒度是一个相对的概念,与算法固有的内在并行度和具体的并行机相关。大粒度并不意味着并行执行的是大任务。

3.成本:运行时间与处理机个数的乘积

4.加速比:在单处理机上的运行时间除以多处理机上运行的时间 。

影响加速比的主要因素:

1).问题的串行部分所占的比例;

2).大量的通信和同步操作

3).负载不平衡

4).资源冲突

5).算法的有效性

5.可扩展性(后面详细分析)

  资源扩展性;应用扩展性;技术扩展性

总结

发布了113 篇原创文章 · 获赞 94 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_44762986/article/details/104618418