Principles of Parallel Algorithm Design(并行算法设计原则)

并行算法讲述的是怎么用多处理器来解决问题。设计一个并行算法包括以下某些步骤:

  1. Identifying portions of the work that can be performed concurrently.
  2. Mapping the concurrent pieces of work onto multiple processes running in parallel.
  3. Distributing the input, output, and intermediate data associated with the program.
  4. Managing accesses to data shared by multiple processors.
  5. Synchronizing the processors at various stages of the parallel program execution.

这里的讨论不考虑自动并行化工具和编译器的作用,这里讨论的并行算法是程序员的责任。


任务依赖图( taskdependency graph):有向无环图

粒度(granularity)
1. 细粒度(fine-grained)将任务分解成大量细小的任务。
2. 粗粒度(coarse-grained)少量的大任务。

并发度(degree of concurrency):任一时刻可同时执行的最大任务数称为最大并发度。并发度依赖于任务图的形状,同样的粒度(基于同样的分解)不能保证同样的并发度。

平均并发度:总工作量与关键路径长度(任何一对起始节点与终止节点之间的最长有向路径)的比就是平均并发度。较短的关键路径有利于达到较高的并发度。

我们不能获得无限的加速比(串行运行时间与并行运行时间的比率):
1. 有限的粒度和并发度。
2. 不同处理器上任务之间的交互(某个任务的输出是另一个任务的输入,访问同一个变量副本)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值