# 第五章(上)-并行算法设计

芝麻开花节节高

# Embarrassingly Computations

Embarrassingly parallel 表示一个 computation 能够被分成 完全独立 的任务。

串行

# Load Balancing & Termination

  • 定义:表示将 computations 平均的分配给多处理器,以获得最高的执行速度。

  • Termination 检测

    • 检测 computations 何时完成
    • computations 为分布式时,终结检测更困难

# Static Load-Balancing

静态负载均衡:提前将任务分配给多处理器。

【TODO:以下三个待进一步分析,用实例分析】
  • Round robin algorithm: selects processes in turn
  • Randomized algorithms: selects processes randomly
  • Recursive bisection - recursively divides the problem into sub-problems of equal computational effort

# Dynamic Load-Balancing

动态意味着:

  • 运行时分配任务给多处理器
  • 在运行时会出现额外的开销,但是比静态负载均衡的效率要高很多

方法有:

【TODO:以下三个待进一步分析】
  • Centralized Work Pool
  • Decentralized Work Pool
  • Fully Distributed Work Pool

# Divide-And-Conquer Computations

Recursively divide a problem into sub-problems that are of the same form as the larger problem.

递归的将一个问题分解为一些列的与原问题形式相同的子问题,然后解决子问题,合并结果就解决了原问题。

分而治之,是一种十分常见的解决问题的思想方法。但并不是所有问题都适用,因为分解之后的子问题要与原问题形式一致

串行
【TODO:用排序算法做例子说明】

# Pipelined Computations

流水线计算。

# Synchronous Computations

# 参考资料

Introduction parallel computing tutorial (opens new window)

台湾新竹清华大学 平行程式 (opens new window)

最近更新: 5/9/2022, 22:53:17