概念
並行性是指在同一時刻或同一時間間隔內完成兩種或兩種以上性質相同或不相同的工作,只要在時間上互相重疊,都存在並行性。計算機系統中的並行性可從不同的層次上實現,從低到高大致可分為:(1)指令內部的並行:是指指令執行中的各個微操作儘可能實現並行操作。
(2)指令間的並行:是指兩條或多條指令的執行是並行進行的。
(3)任務處理的並行:是指將程式分解成可以並行處理的多個處理任務,而使兩個或多個任務並行處理。
(4)作業處理的並行:是指並行處理兩個或多個作業。如多道程式設計、分時系統等。另外,從數據處理上,也有從低到高的並行層次。
(5)字串位並:同時對一個二進制字的所有位進行操作。
(6)字並位串:同時對多個字的同一位進行操作。
(7)全並行:同時對許多字的所有位進行操作。
三種形式
1.時間並行時間並行指時間重疊,在並行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬體設備的各個部分,以加快硬體周轉而贏得速度。
時間並行性概念的實現方式就是採用流水處理部件。這是一種非常經濟而實用的並行技術,能保證計算機系統具有較高的性能價格比。目前的高性能微型機幾乎無一例外地使用了流水技術。
2.空間並行
空間並行指資源重複,在並行性概念中引入空間因素,以“數量取勝”為原則來大幅度提高計算機的處理速度。大規模和超大規模積體電路的迅速發展為空間並行技術帶來了巨大生機,因而成為實現並行處理的一個主要途徑。空間並行技術主要體現在多處理器系統和多計算機系統。但是在單處理器系統中也得到了廣泛套用。
3.時間並行+空間並行
指時間重疊和資源重複的綜合套用,既採用時間並行性又採用空間並行性。顯然,第三種並行技術帶來的高速效益是最好的。
並行計算機
21世紀的計算機系統在不同層次上採取了並行措施,只有當並行性提高到一定層次時,具有了較高的並行處理能力,才能稱為“並行處理系統”。一般有以下三種並行措施。時間重疊:時間重疊是在並行性概念中引入時間因素,即多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬體設備的各個部件,以加快硬體周轉而贏得速度。這各並行措施表現在指令解釋的重疊及流水線部件與流水線處理機。
資源重複:資源重複是在並行性概念中引入空間因素。這種措施提高計算機處理速度最直接,但由於受硬體價格昂貴的限制而不能廣泛使用。目前,隨著硬體價格的降低,已在多種計算機系統中使用,如多處理機系統、陳列式處理機等。
資源共享:資源共享也是在並行性概念中引入時間因素,它是通過軟體的方法實現的。即多個用戶按一定的時間順序輪流使用同一套硬體設備;既可以是按一定的時間順序共享CPU,也可以是CPU與外圍設備在工作時間上的重疊。這種並行措施表現在多道程式和分時系統中,而分散式處理系統和計算機網路則是更高層次的資源共享。
從第一台電子計算機發明,電子計算機已經經歷了五代。計算機發展到第四代時,出現了用共享存儲器、分布存儲器或向量硬體選件的不同結構的並行計算機,開發了用於並行處理的多處理作業系統專用語言和編譯器,同時產生了用於並行處理或分布計算的軟體工具和環境。到出現的計算機稱為第五代計算機,它們的主要特點是進行大規模並行處理。並行處理技術是在微電子、印刷電路、高密度封裝技術、高性能處理機、存儲系統、外圍設備、通信通道、語言開發、編譯技術、作業系統、程式設計環境和套用問題等研究和工業發展的產物。
並行計算機具有代表性的套用領域有:天氣預報建摸、VLSI電路的計算機輔助設計、大型資料庫管理、人工智慧、犯罪控制和國防戰略研究等,而且它的套用範圍還在不斷地擴大。並行處理技術主要是以算法為核心,並行語言為描述,軟硬體作為實現工具的相互聯繫而又相互制約的一種結構技術。本文就並行處理技術的算法策略、描述性定義及軟硬體方面的實現做一個簡單的介紹。
策略及定義
一、並行算法的基本策略在並行處理技術中所使用的算法主要遵循三種策略:
1.分而治之法:也就是把多個任務分解到多個處理器或多個計算機中,然後再按照一定的拓撲結構來進行求解。
2.重新排序法:分別採用靜態或動態的指令詞度方式。
3.顯式/隱式並行性結合:顯式指的是並行語言通過編譯形成並行程式,隱式指的是串列語言通過編譯形成並行程式,顯式/隱式並行性結合的關鍵就在於並行編譯,而並行編譯涉及到語句、程式段、進程以及各級程式的並行性。
二、並行性描述定義
利用計算機語言進行並行性描述的時候主要有三種方案:
1.語言擴展方案:也就是利用各種語言的庫函式來進行並行性功能的擴展。
2.編譯製導法:也稱為智慧型編譯,它是隱式並行策略的體現,主要是由並行編譯系統進行程式表示、控制流的分析、相關分析、最佳化分析和並行化劃分,由相關分析得到方法庫管理方案,由最佳化分析得到知識庫管理方案,由並行化劃分得到程式重構,從而形成並行程式。
3.新的語言結構法:這是顯式並行策略的體現。也就是建立一種全新的並行語言的體系,而這種並行語言通過編譯就能直接形成並行程式。
並行軟體
並行軟體可分成並行系統軟體和並行套用軟體兩大類,並行系統軟體主要指並行編譯系統和並行作業系統,並行套用軟體主要指各種軟體工具和套用軟體包。在軟體中所牽涉到的程式的並行性主要是指程式的相關性和網路互連兩方面。1.程式的相關性:
程式的相關性主要分為數據相關、控制相關和資源相關三類。
數據相關:說明的是語句之間的有序關係,主要有流相關、反相關、輸出相關、I/O相關和求知相關等,這種關係在程式運行前就可以通過分析程式確定下來。數據相關是一種偏序關係,程式中並不是每一對語句的成員都是相關聯的。可以通過分析程式的數據相關,把程式中一些不存在相關性的指令並行地執行,以提高程式運行的速度。
控制相關:是語句執行次序在運行前不能確定的情況。它一般是由轉移指令引起的,只有在程式執行到一定的語句時才能判斷出語句的相關性。控制相關常使正在開發的並行性中止,為了開發更多的並行性,必須用編譯技術克服控制相關。而資源相關則與系統進行的工作無關,而與並行事件利用整數部件、浮點部件、暫存器和存儲區等共享資源時發生的衝突有關。軟體的並行性主要是由程式的控制相關和數據相關性決定的。在並行性開發時往往把程式劃分成許多的程式段——顆粒。顆粒的規模也稱為粒度,它是衡量軟體進程所含計算量的尺度,用細、中、粗來描述。劃分的粒度越細,各子系統間的通信時延也越低,並行性就越高,但系統開銷也越大。因此,在進行程式組合最佳化的時候應該選擇適當的粒度,並且把通訊時延儘可能放在程式段中進行,還可以通過軟硬體適配和編譯最佳化的手段來提高程式的並行度。
2.網路互連:
將計算機子系統互連在一起或構造多處理機或多計算機時可使用靜態或動態拓撲結構的網路。靜態網路由點一點直接相連而成,這種連線方式在程式執行過程中不會改變,常用來實現集中式系統的子系統之間或分散式系統的多個計算結點之間的固定連線。動態網路是用開關通道實現的,它可動態地改變結構,使之與用戶程式中的通信要求匹配。動態網路包括匯流排、交叉開關和多級網路,常用於共享存儲型多處理機中。在網路上的訊息傳遞主要通過尋徑來實現。常見的尋徑方式有存儲轉發尋徑和蟲蝕尋徑等。在存儲轉發網路中以長度固定的包作為信息流的基本單位,每個結點有一個包緩衝區,包從源結點經過一系列中間結點到達目的結點。存儲轉發網路的時延與源和目的之間的距離(段數)成正比。而在新型的計算機系統中採用蟲蝕尋徑,把包進一步分成一些固定長度的片,與結點相連的硬體尋徑器中有片緩衝區。訊息從源傳送到目的結點要經過一系列尋徑器。同一個包中所有的片以流水方式順序傳送,不同的包可交替地傳送,但不同包的片不能交叉,以免被送到錯誤的目的地。蟲蝕尋徑的時延幾乎與源和目的之間的距離無關。在尋徑中產生的死鎖問題可以由虛擬通道來解決。虛擬通道是兩個結點間的邏輯鏈,它由源結點的片緩衝區、結點間的物理通道以及接收結點的片緩衝區組成。物理通道由所有的虛擬通道分時地共享。虛擬通道雖然可以避免死鎖,但可能會使每個請求可用的有效通道頻寬降低。因此,在確定虛擬通道數目時,需要對網路吞吐量和通信時延折衷考慮。
圖像處理
並行處理技術是解決需要長時間處理,特別是全3D模擬難題極為高效的方案。若擁有多台工作站,則可將它們當做一個處理機群來操作,然而,Linux微機機群卻擁有更高的性能/價格比。並行處理技術可適用於SunSolaris,SGIIrix和Linux運行環境,但不支持微機Windows環境。並行處理技術使全3D模擬工作的可適用性得到極大程度地擴展。以往需要數天才能完成的處理任務,僅需幾小時即可完成。例如油氣系統模擬以往僅能作為研究工作,而現在則可以作為油氣勘探風險評價的常規流程之一。清楚地展示出近幾年在沒有硬體成本增加的前提下處理速度的重大突破!PetroMod並行處理(PP)許可證IESPetroMod的並行處理(PP)許可證可按處理器的個數購買,折扣量與所購買的可並行處理的數目有關。並行處理的購置費和維護費都很低,但它們可靈活地套用於不同的工作中,因為不管如何套用,許可證只管您可擁有的並行處理數:-並行處理技術主要用於加速對大的全3D數據模型的處理能力。典型的處理器數介於8-12之間,並行處理的加速因子通常與處理器數接近,即8個處理器的加速能力近於原來的8倍,因為並行處理技術能夠充分利用機群中所有記憶體。-並行處理技術還可用於對2D模型進行處理。-並行處理技術對PetroRisk處理特別重要,因為每一個風險運算過程都對應一個處理器!這意味著多個風險運算過程可在並行機中同時運行,並且風險模擬可有機地融入全3D處理工作中。發展概況
遵循不同的技術途徑,採用不同的並行措施,在不同的層次上實現並行性的過程,反映了計算機體系結構向高性能發展的自然趨勢。在單處理機系統中,主要的技術措施是在功能部件上,即改進各功能部件,按照時間重疊、資源重複和資源共享形成不同類型的並行處理系統。在單處理機的並行發展中,時間重疊是最重要的。把一件工作分成若干相互聯繫的部分,把每一部分指定給專門的部件完成,然後按時間重疊措施把各部分執行過程在時間上重疊起來,使所有部件依次完成一組同樣的工作。例如將執行指令的過程分為三個子過程:取指令、分析指令和執行指令,而這三個子過程是由三個專門的部件來完成,它們是取指令部件、分析指令部件和指令執行部件。它們的工作可按時間重疊,如在某一時刻第I條指令在執行部件中執行,第I+1條指令在分析部件中分析,第I+2條指令被取指令部件取出。三條指令被同時處理,從而提高了處理機的速度。另外,在單處理機中,也較為普遍地運用了資源重複,如多操作部件和多體存儲器的成功套用。
多機系統是指一個系統中有多個處理機,它屬於多指令流多數據流計算機系統。按多機之間連線的緊密程度,可分為緊耦合多機系統和松耦合多機系統兩種。在多機系統中,按照功能專用化、多機互連和網路化三個方向發展並行處理技術。
功能專用化經鬆散耦合系統及外圍處理機向高級語言處理機和資料庫機發展。多機互連是通過網際網路緊密耦合在一起的、能使自身結構改變的可重構多處理機和高可靠性的容錯多處理機。計算機網路是為了適應計算機套用社會化、普及化面發展起來的。它的進一步發展,將滿足多任務並行處理的要求,多機系統向分散式處理系統發展是並行處理的一種發展趨勢。
其他相關
國家重大基礎研究項目課題以及國家高技術研究項目。中心的主要任務是為研究所的高性能計算提供相關的科學與技術支持,主要包括:1.高性能並行計算機環境的建設與管理
2.高性能並行計算軟體與理論研究
3.大規模科學計算可視化軟體與理論研究
4.大規模數據管理軟體與理論研究
5.計算機網路技術的開發與套用
6.虛擬現實技術研究
•上海超級計算中心成立與2000年底,是上海市信息化建設的一個重要基礎設施。該中心以上海市的科研教育和工業發展為基礎,為汽車碰撞模擬、船舶設計等提供高性能計算能力。目前擁有國內TOP100排名第一的超級計算機曙光4000A。
•中國科學院的超級計算中心成立於1996年,為中國科學院的科學研究提供計算環境,是中國科學院信息化建設的重要基礎設施之一。