天天看點

并行算法基本概念并行算法基本概念

并行算法基本概念

本文主要包含如下内容:

  • 并行算法基本概念
    • 并行算法的分類
    • 并行算法的特征
    • 并行算法的速度和效率

并行算法的分類

Task parallelism and Data parallelism 任務并行和資料并行

  

Task parallelism

:對任務進行并行化處理,每個核進行不同的操作。

  

Data parallelism

:對資料進行并行化處理,每個核對不同資料進行類似的操作。

Shared-memory and Distributed-memory 共享記憶體與分離式記憶體

  

Shared-memory

:核心可以共享計算機的記憶體

  

Distributed-memory

:核心隻能夠通路自己的私有記憶體

并行算法基本概念并行算法基本概念

并行算法的特征

Communication 通信

  每個核心需要對該核的算法輸入資料和計算結果的資料進行通信、傳輸。

Load balancing 負載均衡

  為了加快運算速度,希望每個核完成運算時間基本一緻,是以希望達到負載均衡。

Synchronization 同步

  因為每個核心之間存在資料通信,是以需要等待所需資料的計算結果。

并行算法的速度和效率

Speedup

  p= Number of cores (核心數目)

  T serial = Serial run-time (串行運作時間)

  T parallel = Parallel run-time (并行運作時間)

Tparallel=TserialP 

S=TserialTparallel 

Efficiency

E=SP=TserialTparallelP=TserialP∗Tparallel

Tparallel=TserialP+Toverhead

  許多并行程式是通過将程序/線程之間的串行程式的工作分開,并添加必要的“并行開銷”,例如互斥或通信來開發的。此外,随着問題大小的增加,T_overhead通常比T_serial慢得多。 程序/線程有更多的工作要做,是以協調程序/線程工作的相對時間應該更少。

繼續閱讀