1. 程式人生 > >中山大學分散式系統課程期末複習大綱

中山大學分散式系統課程期末複習大綱

分散式系統複習大綱

Author:胡子昂

Date:2018年6月4日 星期一 下午7:06

總體概述:

  • 本學期學到的章節關係如下:

這裡寫圖片描述

  • 我將所有章節分為了三個部分:

    1. 並行演算法執行平臺學習
    2. 並行演算法前置知識學習
    3. 並行演算法學習

    他們的具體關係如下圖。接下來,我將根據這三個部分依次進行總結:

    這裡寫圖片描述

Part 1 並行演算法執行平臺學習

Chap 2 並行程式設計平臺

這裡寫圖片描述

2.1 處理器內並行

  • 微處理器體系結構發展:

    1. 流水線(pipeline):等同於作業系統流水線。

    2. 超標量執行:有多個流水線,同時執行多條相同流水線階段的指令。

      這裡寫圖片描述

2.2 記憶體系統性能的極限

  • 延遲:記憶體收到一條記憶體字請求,在lus的延遲後,返回資料。則延遲為lus。
  • 頻寬:程式每秒鐘通過請求記憶體可獲得的最大位元組數。
  • 躲避延遲方法:
    1. 預取:預先取更多的資料。
    2. 多執行緒:一個執行緒等待時切換到另一個執行緒。

2.3 平行計算平臺剖析

  • 平行計算平臺控制結構:

    • SIMD和MIMD:

    SIMD是單指令多資料流,只有一個控制單元,該控制單元將單個指令交給不同處理器執行,機器內部需要進行同步。(並行演算法主要研究SIMD)

    MIMD是多指令多資料流,每個處理器有一個控制單元,每個控制單元將指令交給對應的處理器執行,機器內部不需要進行同步

    這裡寫圖片描述

  • 平行計算平臺通訊模型:

    • SIMD通訊模型:共享地址空間平臺(PRAM,即共享記憶體機器)和訊息傳遞平臺。

    共享記憶體一般用於單一計算機內通訊。

    訊息傳遞一般用於計算機之間通過網路通訊。

2.4 並行平臺的物理組織

  • 並行平臺物理組織:

    • PRAM的四小類:
      1. EREW:序列讀,序列寫。
      2. CREW:並行讀,序列寫。
      3. ERCW:序列讀,並行寫。
      4. CRCW:並行讀,並行寫。
    • CRCW(僅限於CW)的四種協議:
      1. 共有:如果處理器寫的值相同,則寫入。
      2. 任意:當一個處理器寫時,其他不能寫。(等同於EW)
      3. 優先順序:處理器按優先順序排序,最高優先順序的寫,其他不能寫。(有優先的EW)
      4. 求和:所有量的總和被寫入。類似於O(1)的規約。
  • 網路拓撲結構:

    1. 基於匯流排:所有處理器通過匯流排進行通訊和訪問記憶體。

    這裡寫圖片描述

    1. 交叉開關網路:n個處理器和m個記憶體儲存地址,用一個n*m矩陣S訪問。例如:當S[i][j]開啟時,代表第i個處理器正在訪問第j個記憶體儲存地址。

      這裡寫圖片描述

    2. 多級網路:多級網路的每個節點開和關代表兩種連線,一種是直通式(a),一種是跨接式(b)。

      這裡寫圖片描述

      多級網路的一種連線例子:omega網路。

      這裡寫圖片描述

      通過切換每個節點的開關,可以將左邊8個節點(代表處理器)通過不同方式對映到右邊八個節點上(記憶體)。

      Q:如何通過控制開關將左邊節點對映到右邊節點?例如如何控制節點將S(010)對映到T(111)。

      A:先求出s⊕t = 101,1代表交叉,0代表平行。因此s->t途徑的三個節點分別是交叉平行交叉(101)。

    3. 全連線網路和星型網路:太簡單了,略。

    4. 線性網路:連一條線,分為有環和無環。

    5. 2維格網:2維線性網路,分為有環和無環。

    6. k-d格網:有d維,每一維有k個節點。其中,個數為p的線性網路是1-p格網或者p-1格網。

    7. 超立方體:看圖,和計算機類似的一種多級網路。

    這裡寫圖片描述

    1. 樹網路:同資料結構的樹,可分為靜態樹,動態樹,胖樹。

      靜態樹:非葉節點是處理器。

      動態樹:非葉節點是開關節點。

      這裡寫圖片描述

      胖樹:在動態樹的基礎上,樹層級越高邊數越高。

      這裡寫圖片描述

  • 靜態網際網路絡評價:

    • 評價引數:

    • 直徑:網路任意兩個節點之前的最長距離。

    • 弧連通性:等同於找出網路中任意一個節點,該節點的邊數量最小,這個值就是連通性值。
    • 對分寬度:如果要將網路等分,最少需要切多少條邊。
    • 成本:網路中總共有多少條邊。

    • 評價圖:

    這裡寫圖片描述

  • 動態網際網路絡評價:

    • 評價引數:除成本都一樣。

    • 成本:網路中總共有多少個開關。

    • 評價圖:

    這裡寫圖片描述

2.5 平行計算機的通訊成本

  • 平行計算機的訊息傳遞成本:

    • 評價引數:

    • 啟動時間ts:傳送節點和接受節點處理訊息所花的時間,一條訊息只有一次。

    • 每站時間th:訊息在節點之間傳輸時間。(非常小,基本沒用過
    • 每字傳輸時間tw:節點接收一個位元組所花的時間。

    • 儲存轉發(store-forward)時間:(l條鏈路邊,資料大小為m)

    tcomm=ts+mltw

    (PS:th忽略。)

    • 直通路由(cut-through)時間:(l條鏈路邊,資料大小為m)

    tcomm=ts+mtw

    (PS:th忽略。)

Chap 4 基本通訊操作

這裡寫圖片描述

PS:基本通訊操作一般都是建立在cut-through上。store-forward則只用看直徑即可。

PS2:有一種簡單的判斷T的方法。ts前面的引數是總共進行的步數,tw前面的引數是0節點(首節點)在這個過程中的資料量總和

例如:對一對多廣播環形陳列,假設有p個處理器,則步數為logp,首節點每步傳遞的資料固定為m,總共有logp次,則時間為:T = ts logp + tw m logp

4.1 一對多廣播和多對一規約

這裡寫圖片描述

PS:多對一規約就是一對多廣播的逆方向

PS2:每一步需要的時間見2.5

  • 環形或線性陳列:假設有p個處理器,對收到資料的節點i,分別向i + p/2,i + p/4,i + p/8…傳遞資料直到所有資料傳遞完畢。總共需要logp步。

    廣播和規約如下圖:

    這裡寫圖片描述

    這裡寫圖片描述

  • 矩陣和向量乘法:n*n矩陣S和n*1向量V的乘法,假設有n*n個處理器。

    Step1:n個處理器將向量中的每個元素廣播到矩陣中的相應列中,例如將V[i]廣播到S的第i列中。

    Step2:每個處理器負責一個節點,程序乘法計算。

    Step3:每行的n個處理器進行規約,規約到一個處理器中,得到n*1結果向量。

    這裡寫圖片描述

  • 格網:橫著來一次線性廣播,接著豎著來一次線性廣播。假設有p個處理器,則總共需要2log√p步,即logp步。

  • 超立方體:看作n維格網,由於每增加一維增加相同節點數,因此每傳遞一維需要一步。假設有p個處理器,則總共需要logp步,即維數。

  • 平衡二叉樹:做法等同於線性陳列廣播。

  • 總結:無論哪種情況,廣播和規約的時間都為:T=tslogp+twmlogp

4.2 多對多廣播和規約

這裡寫圖片描述

PS:多對多規約與其說是多對多廣播的逆方向,不如說是在多對多廣播傳遞資料的基礎上,加上資料處理(求和之類的)

  • 環形或線性陳列:假設有p個處理器。

    Step1:將自己的資料傳遞給下一個節點。

    Step2 -> (p-1):收到上個節點傳遞過來的資料後,儲存該資料,同時把該資料傳遞給下一個節點。

    通過p-1步後,每個節點都有所有的資料了。

    由於每次只需要傳遞m大小的資料,因此所花時間為:T=ts(p1)+twm(p1)

    這裡寫圖片描述

  • 格網:橫著來一次線性廣播,接著豎著來一次線性廣播。假設有p個處理器,則總共需要2(√p - 1)步。

    第一次廣播傳遞的資料量為m,通訊時間為T1=(ts+twm)(p1)

    第二次廣播傳遞的資料量為√pm,通訊時間為T2=(ts+twpm)(p1)

    兩個時間加到一起,總時間為:T=T1+T2=2ts(p1)+twm(p1)

  • 超立方體:與一對多廣播相同,區別是每次節點發送的資料加倍。假設有p個處理器,則總共需要logp步,即維數。

    在第i步中,交換資訊的長度為2i1m,花費的時間為ts+2i1mtw

    將所有時間相加(等比數列求和),總時間為:T=tslogp+twm(p1)

    三者tw相同(廢話),ts根據通訊結構不同。

4.3 字首和(感覺沒什麼重要的)

  • 每個節點求字首和的時候,根據自己的節點數選擇是否加接收到的資料。

    例如:當節點3(011)在計算字首和的時候,加第一次(2)和第二次(0 + 1)接收到的資料,最後加上自己即可。

4.4 散發和收集

這裡寫圖片描述

PS:散發傳送不同的資料,廣播發送相同的資料。

散發方法類似於一對多廣播,區別是每次傳送的資料不同(減半)

總共時間(三種結構相同):