異構計算分析

異構計算分析

一. 基本概念

異構計算技術從80年代中期產生,由於它能經濟有效地獲取高性能計算能力、可擴展性好、計算資源利用率高、發展潛力巨大,已成爲並行/分佈計算領域中的研究熱點之一。

隨着通信和網絡技術的迅速發展,網絡計算概念應運而生。同構網絡計算系統now或cow首先興起,接着很快湧現出異構網絡計算系統,從而使異構計算近年來成爲並行/分佈計算領域中的主要研究熱點之一。
在這裏插入圖片描述
人工智能有三要素:算法,計算力,數據。我們今天主要來講講計算力。

計算力歸根結底由底層芯片提供。按照計算芯片的組成方式,可以分成:

同構計算:使用相同類型指令集和體系架構的計算單元組成系統的計算方式。

異構計算:使用不同類型指令集和體系架構的計算單元組成系統的計算方式。常見的計算單元類別包括CPU、GPU、ASIC、FPGA等。

在異構計算系統上進行的並行計算通常稱爲異構計算。人們已從不同角度對異構計算進行定義,綜合起來我們給出如下定義:異構計算是一種特殊形式的並行和分佈式計算,它或是用能同時支持simd方式和mimd方式的單個獨立計算機,或是用由高速網絡互連的一組獨立計算機來完成計算任務。它能協調地使用性能、結構各異地機器以滿足不同的計算需求,並使代碼(或代碼段)能以獲取最大總體性能方式來執行。

概括來說,理想的異構計算具有如下的一些要素:

(1)它所使用的計算資源具有多種類型的計算能力,如simd、mimd、向量、標量、專用等;
(2)它需要識別計算任務中各子任務的並行性需求類型;
(3)它需要使具有不同計算類型的計算資源能相互協調運行;
(4)它既要開發應用問題中的並行性,更要開發應用問題中的異構性,即追求計算資源所具有的計算類型與它所執行的任務(或子任務)類型之間的匹配性;
(5)它追求的最終目標是使計算任務的執行具有最短時間。

可見,異構計算技術是一種使計算任務的並行性類型(代碼類型)與機器能有效支持的計算類型(即機器能力)最相匹配、最能充分利用各種計算資源的並行和分佈計算技術。

二.CPU&GPU

  1. CPU  
      CPU(Central Processing Unit, 中央處理器)就是機器的“大腦”,也是佈局謀略、發號施令、控制行動的“總司令官”。

CPU的結構主要包括運算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數據、控制及狀態的總線。

簡單來說就是:計算單元、控制單元和存儲單元。
在這裏插入圖片描述
在這裏插入圖片描述
2. GPU

在正式講解GPU之前,我們先來講講上文中提到的一個概念——並行計算。

並行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程,是提高計算機系統計算速度和處理能力的一種有效手段。它的基本思想是用多個處理器來共同求解同一問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來並行計算。

並行計算可分爲時間上的並行和空間上的並行。

時間上的並行是指流水線技術,比如說工廠生產食品的時候分爲四步:清洗-消毒-切割-包裝。

如果不採用流水線,一個食品完成上述四個步驟後,下一個食品才進行處理,耗時且影響效率。但是採用流水線技術,就可以同時處理四個食品。這就是並行算法中的時間並行,在同一時間啓動兩個或兩個以上的操作,大大提高計算性能。
在這裏插入圖片描述在這裏插入圖片描述
三.基本原理

1、異構計算系統。

它主要由以下三部分組成:
(1)一組異構機器。
(2)將各異構機器連接起來的高速網絡。它可以是商品化網絡,也可以是用戶專門設計的。
(3)相應的異構計算支撐軟件。
在這裏插入圖片描述
2、異構計算的基本工作原理。

異構計算需求在析取計算任務並行性類型基礎上,將具有相同類型的代碼段劃分到同一子任務中,然後根據不同並行性類型將各子任務分配到最適合執行它的計算資源上加以執行,達到使計算任務總的執行時間爲最小。下面通過一個簡單例子來說明異構計算的基本工作原理。

假設在某一基準串行計算機上執行某一給定計算任務的時間爲ts,其中向量、mimd、simd以及sisd各類子任務所佔執行時間的百分比分別爲30%、36%、24%和10%。假設某向量機執行上述各類子任務相對於基準串行機的加速比分別爲30、2、8和1.25,則在該向量機上執行此任務所需的總時間爲

tv=30%ts/30+36%ts/2+24%ts/8+10%ts/1.25=0.30ts,

故相應的加速比爲sv=ts/tv=ts/0.3ts=3.33

若上述向量機與其他的mimd機、simd機以及一臺高性能工作站(sisd型)構成一個異構計算系統,並假設mimd機、simd機以及工作站執行相匹配子任務的加速比分別爲36、24和10,則在該異構計算系統上執行同樣任務所需時間就變爲

thet=30%ts/30+36%ts/36+24%ts/24+10%ts/10+tc

其中tc爲機器間交互開銷時間,假設需2%ts時間,則thet=0.06ts,從而相應的加速比爲shet=ts/0.06ts=16.67。

由上例可見,異構計算系統可比同構計算系統獲取高得多的加速比。這主要是因爲同構計算系統中的加速比只是靠並行性開發獲取的,而異構計算系統中的加速比除了並行性之外,更主要的是靠開發異構性獲得的(即不同類型子任務與相應類型的計算資源相匹配),儘管此時會有相應的交互開銷。交互開銷越小,異構計算的優越性就越加明顯。
在這裏插入圖片描述
3. 分類

異構計算按以何種形式來提供計算類型多樣性,可分爲系統異構計算(shc-system heterogeneous computing)和網絡異構計算(nhc-network heterogeneous computing)兩大類。shc以單機多處理器形式提供多種計算類型,而nhc則以網絡連接的多計算機形式提供多種計算類型。

根據異構性實現方式不同,即是空間異構性還是時間異構性,shc和nhc各自又可進一步分爲兩類。shc分爲單機多計算方式和單機混合計算方式兩大類,前者在同一時刻允許以多種計算方式執行任務,後者在同一時刻只允許以一種計算方式執行任務,但在不同時刻計算可從一種方式自動切換到另一種方式,如simd和mimd方式間的切換。前者的實例有美國hughes研究實驗室和mit共同研製的圖像理解系統結構(iua),它是多層異構系統結構,按圖像理解層次要求設計每一層,低層是simd位串網絡(4096),用來處理像素級操作(如圖像增強),中層是由64個數字信號處理(dsp)芯片構成的,以spmd或mimd(中粒度)方式執行模式分類等操作,頂層是一個通用mimd(粗粒度)機器,完成場景和動作分析等知識處理操作。後者的實例爲美國普渡大學研製的pasm系統原型,由16個pe(處理單元)組成的系統,它們可動態地加以劃分以形成各種大小的獨立的混合方式子機器,執行方式可按需要在simd和mimd之間自動切換。

nhc可進一步分爲同類異型多機方式和異類混合多機方式兩類。同類異型多機方式中所使用的多機,它們的結構屬同一類,即支持同一種並行性類型(如simd、mimd、向量等類型之一),但型號可能不同,因此性能可以各有差異。通常的now或cow爲同類同型多機方式,因此可看成是同類異型多機方式中的特例。異類混合多機方式中所使用的多機,它們的結構則屬不同類型。
在這裏插入圖片描述
4. 層次結構

網絡異構計算系統主要由一組異構計算機、一個連接所有機器的高速網絡和一個並行編程環境所組成。邏輯上這種系統可分爲三個層次:網絡層、通信層和處理層。如圖1所示。

網絡層主要用來連接在不同地點的計算機,如圖1中的計算站a和計算站b,並考慮其中消息傳遞的路由選擇、網絡流優化和網絡排隊理論等問題,這與傳統的計算機網絡設計類似。

通信層工作於網絡層之上,主要爲系統中各種不同的計算機提供能夠相互通信的機制。通信工具軟件應提供使衆多異構計算機集合可視爲是一個單一的系統映像、單個虛擬異構並行機的機制。這將方便用戶編程。這種通信工具通常提供一組原語來提供各種通信。典型流行的通信工具是pvm(並行虛擬機)和mpi(消息傳遞標準接口)。

處理層主要用來管理異構機器組並保證任務的高效執行。它所提供的主要服務包括編程環境和語言支持、應用任務的類型分析和任務劃分、任務的映射與調度以及負載平衡等。

  1. 主要問題

異構計算處理過程本質上可分爲三個階段:並行性檢測階段、並行性特徵(類型)析取階段以及任務的映射和調度階段。並行性檢測不是異構計算特有的,同構計算也需要經歷這一階段。可用並行和分佈計算中的常規方法加以處理。並行性特徵析取階段是異構計算特有的,這一階段的主要工作是估計應用中每個任務的計算類型參數,包括映射及對任務間通信代價的考慮。任務映射和調度階段(也稱爲資源分配階段)主要確定每個任務(或子任務)應映射哪臺機器上執行以及何時開始執行。

從用戶來看,上述的異步計算處理過程可用兩種方法來實現。第一種是用戶指導法,即由用戶用顯式的編譯器命令指導編譯器完成對應用代碼類型分析及有關任務的分解等工作,這是一種顯式開發異構性和並行性方法,較易於實現,但對用戶有一定要求,需將異構計算思想融入用戶程序中。另一種是編譯器指導法,需將異構思想融入編譯器中,然後由具有“異構智力”的編譯器自動完成應用代碼類型分析、任務分解、任務映射及調度等工作,即實現自動異構計算。這是一種隱式開發異構性和並行性方法,是異構計算追求的終極目標,但難度很大,對編譯器要求很高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章