並行與分布式計算導論(四)問題的結構與分解

2021-10-04 15:00:28 字數 1004 閱讀 4616

工作的分配

新的一輪mpi作業已經發布,我盡量在ddl之前給同學們把mpi部分也更新出來!魚生苦短,爭取更鹹!

儘管foster的設計原則倡導我們要進行四個設計步驟,但實際上openmp程式設計中往往先考慮的是問題的分解和分配問題。分解就是決定哪一部分和哪一部分應該分開,哪一部分先執行哪一部分後執行,哪一部分可以並行,哪一部分只能交給單執行緒執行;分配就是決定可以並行的任務部分如何分配給不同的處理器,如何權衡並行程度與通訊開銷。

同一項工作可以被分解成很多種子任務的組合,不同的分解可能產生多種多樣的計算方式和安排方式

定義:可並行的任務數目

指標:並行度與任務粒度(granularity)

(回顧:任務粒度是描述任務劃分精細程度的乙個指標)

任務依賴關係圖(乙個有向連通無環圖)反映的是任務間的拓撲關係(前後置關係)。乙個任務只有等待指向它的所有前置任務都完成才能開始執行

任務依賴關係圖中的邊展示了任務的拓撲關係

注意與任務依賴關係圖(task dependency graph)區分,任務互動圖展現的是任務間的資料互動關係

限制並行效果的因素

衡量並行效果的指標

任務(task)

the runtime system將決定上述內容

注:task、work之類的東西在中文中的意思其實比較類似,在程式設計實踐中也沒有嚴格的區分用哪個名詞,以後提到的「任務」到底是指任務單元的task還是工作總體的work讀者應該視語境而定

執行緒與對映

實際操作中將任務分配給threads,而不是cores,threads到cores的對映由os完成

借助什麼工具選擇對映

試圖讓執行緒間互動最少時:使用任務互動圖

乙個最好的對映一定要最小化並行執行時間

平行計算與分布式計算

主要內容來自維基百科 分布式系統是聯網計算機組,其工作目標相同。術語 併發計算 平行計算 和 分布式計算 有很多重疊,它們之間沒有明顯的區別。15 同一系統可以表徵為 並行 和 分布式 典型分布式系統中的處理器並行執行。16 平行計算可以被看作分布式計算的乙個特定的緊密耦合的形式,17 和分布式計算...

並行與分布式計算導論(一)衡量並行程式好壞的指標

寫給p大學子 由於授課英語太塑料了,我的學術英語也太差了,並分導的課堂上我總是處於游離邊緣。因此我特別在學習之餘總結了並分導授課的主要內容 內容來自ppt和教材的閱讀 以供後人使用。閱讀本系列你將獲得 特別說明,由於lecture1除了speedup怎麼算什麼solid的東西都沒有,在這裡就不著重寫...

並行與分布式計算導論 練習題指導(三)

等效關係反映了為了維持並行效率不變,增加處理器與增大問題規模這兩個影響並行效率的因素間的關係 在問題的某個並行實現下,記t n p t n,p t n,p 為使用k個處理器計算規模為n的問題所需時間,t0 n,p t 0 n,p t0 n,p 為使用k個處理器計算規模為n的問題花在通訊和冗餘計算上的...