并行軟件可分成并行系統(tǒng)軟件和并行應(yīng)用軟件兩大類,并行系統(tǒng)軟件主要指并行編譯系統(tǒng)和并行操作系統(tǒng),并行應(yīng)用軟件主要指各種軟件工具和應(yīng)用軟件包。在軟件中所牽涉到的程序的并行性主要是指程序的相關(guān)性和網(wǎng)絡(luò)互連兩方面。 程序的相關(guān)性主要分為數(shù)據(jù)相關(guān)、控制相關(guān)和資源相關(guān)三類。
數(shù)據(jù)相關(guān):說明的是語句之間的有序關(guān)系,主要有流相關(guān)、反相關(guān)、輸出相關(guān)、i/o相關(guān)和求知相關(guān)等,這種關(guān)系在程序運行前就可以通過分析程序確定下來。數(shù)據(jù)相關(guān)是一種偏序關(guān)系,程序中并不是每一對語句的成員都是相關(guān)聯(lián)的??梢酝ㄟ^分析程序的數(shù)據(jù)相關(guān),把程序中一些不存在相關(guān)性的指令并行地執(zhí)行,以提高程序運行的速度。
控制相關(guān):是語句執(zhí)行次序在運行前不能確定的情況。它一般是由轉(zhuǎn)移指令引起的,只有在程序執(zhí)行到一定的語句時才能判斷出語句的相關(guān)性??刂葡嚓P(guān)常使正在開發(fā)的并行性中止,為了開發(fā)更多的并行性,必須用編譯技術(shù)克服控制相關(guān)。而資源相關(guān)則與系統(tǒng)進行的工作無關(guān),而與并行事件利用整數(shù)部件、浮點部件、寄存器和存儲區(qū)等共享資源時發(fā)生的沖突有關(guān)。軟件的并行性主要是由程序的控制相關(guān)和數(shù)據(jù)相關(guān)性決定的。在并行性開發(fā)時往往把程序劃分成許多的程序段——顆粒。顆粒的規(guī)模也稱為粒度,它是衡量軟件進程所含計算量的尺度,用細、中、粗來描述。劃分的粒度越細,各子系統(tǒng)間的通信時延也越低,并行性就越高,但系統(tǒng)開銷也越大。因此,在進行程序組合優(yōu)化的時候應(yīng)該選擇適當?shù)牧6?,并且把通訊時延盡可能放在程序段中進行,還可以通過軟硬件適配和編譯優(yōu)化的手段來提高程序的并行度。 將計算機子系統(tǒng)互連在一起或構(gòu)造多處理機或多計算機時可使用靜態(tài)或動態(tài)拓撲結(jié)構(gòu)的網(wǎng)絡(luò)。靜態(tài)網(wǎng)絡(luò)由點一點直接相連而成,這種連接方式在程序執(zhí)行過程中不會改變,常用來實現(xiàn)集中式系統(tǒng)的子系統(tǒng)之間或分布式系統(tǒng)的多個計算結(jié)點之間的固定連接。動態(tài)網(wǎng)絡(luò)是用開關(guān)通道實現(xiàn)的,它可動態(tài)地改變結(jié)構(gòu),使之與用戶程序中的通信要求匹配。動態(tài)網(wǎng)絡(luò)包括總線、交叉開關(guān)和多級網(wǎng)絡(luò),常用于共享存儲型多處理機中。在網(wǎng)絡(luò)上的消息傳遞主要通過尋徑來實現(xiàn)。常見的尋徑方式有存儲轉(zhuǎn)發(fā)尋徑和蟲蝕尋徑等。在存儲轉(zhuǎn)發(fā)網(wǎng)絡(luò)中以長度固定的包作為信息流的基本單位,每個結(jié)點有一個包緩沖區(qū),包從源結(jié)點經(jīng)過一系列中間結(jié)點到達目的結(jié)點。存儲轉(zhuǎn)發(fā)網(wǎng)絡(luò)的時延與源和目的之間的距離(段數(shù))成正比。而在新型的計算機系統(tǒng)中采用蟲蝕尋徑,把包進一步分成一些固定長度的片,與結(jié)點相連的硬件尋徑器中有片緩沖區(qū)。消息從源傳送到目的結(jié)點要經(jīng)過一系列尋徑器。同一個包中所有的片以流水方式順序傳送,不同的包可交替地傳送,但不同包的片不能交叉,以免被送到錯誤的目的地。蟲蝕尋徑的時延幾乎與源和目的之間的距離無關(guān)。在尋徑中產(chǎn)生的死鎖問題可以由虛擬通道來解決。虛擬通道是兩個結(jié)點間的邏輯鏈,它由源結(jié)點的片緩沖區(qū)、結(jié)點間的物理通道以及接收結(jié)點的片緩沖區(qū)組成。物理通道由所有的虛擬通道分時地共享。虛擬通道雖然可以避免死鎖,但可能會使每個請求可用的有效通道頻寬降低。因此,在確定虛擬通道數(shù)目時,需要對網(wǎng)絡(luò)吞吐量和通信時延折衷考慮。
并行處理技術(shù)的并行軟件
并行編程技術(shù)什么是并行編程技術(shù)
并行編程通常是指軟件代碼,它促進在同一時間執(zhí)行多個計算任務(wù)的性能。
這有點像有一個操場上有20個滑梯而不是一個。孩子們不必排隊等待輪到自己,因為他們可以同時玩。你可以使用電腦鼠標,一邊聽在線廣播,一邊更新電子表格中的信息,并對你的個人電腦做病毒掃描,這唯一的理由就是并發(fā)編程。