并行軟件可分成并行系統(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)系在程序運(yùn)行前就可以通過分析程序確定下來。數(shù)據(jù)相關(guān)是一種偏序關(guān)系,程序中并不是每一對語句的成員都是相關(guān)聯(lián)的。可以通過分析程序的數(shù)據(jù)相關(guān),把程序中一些不存在相關(guān)性的指令并行地執(zhí)行,以提高程序運(yùn)行的速度。
控制相關(guān):是語句執(zhí)行次序在運(yùn)行前不能確定的情況。它一般是由轉(zhuǎn)移指令引起的,只有在程序執(zhí)行到一定的語句時(shí)才能判斷出語句的相關(guān)性。控制相關(guān)常使正在開發(fā)的并行性中止,為了開發(fā)更多的并行性,必須用編譯技術(shù)克服控制相關(guān)。而資源相關(guān)則與系統(tǒng)進(jìn)行的工作無關(guān),而與并行事件利用整數(shù)部件、浮點(diǎn)部件、寄存器和存儲(chǔ)區(qū)等共享資源時(shí)發(fā)生的沖突有關(guān)。軟件的并行性主要是由程序的控制相關(guān)和數(shù)據(jù)相關(guān)性決定的。在并行性開發(fā)時(shí)往往把程序劃分成許多的程序段——顆粒。顆粒的規(guī)模也稱為粒度,它是衡量軟件進(jìn)程所含計(jì)算量的尺度,用細(xì)、中、粗來描述。劃分的粒度越細(xì),各子系統(tǒng)間的通信時(shí)延也越低,并行性就越高,但系統(tǒng)開銷也越大。因此,在進(jìn)行程序組合優(yōu)化的時(shí)候應(yīng)該選擇適當(dāng)?shù)牧6龋⑶野淹ㄓ崟r(shí)延盡可能放在程序段中進(jìn)行,還可以通過軟硬件適配和編譯優(yōu)化的手段來提高程序的并行度。 將計(jì)算機(jī)子系統(tǒng)互連在一起或構(gòu)造多處理機(jī)或多計(jì)算機(jī)時(shí)可使用靜態(tài)或動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。靜態(tài)網(wǎng)絡(luò)由點(diǎn)一點(diǎn)直接相連而成,這種連接方式在程序執(zhí)行過程中不會(huì)改變,常用來實(shí)現(xiàn)集中式系統(tǒng)的子系統(tǒng)之間或分布式系統(tǒng)的多個(gè)計(jì)算結(jié)點(diǎn)之間的固定連接。動(dòng)態(tài)網(wǎng)絡(luò)是用開關(guān)通道實(shí)現(xiàn)的,它可動(dòng)態(tài)地改變結(jié)構(gòu),使之與用戶程序中的通信要求匹配。動(dòng)態(tài)網(wǎng)絡(luò)包括總線、交叉開關(guān)和多級網(wǎng)絡(luò),常用于共享存儲(chǔ)型多處理機(jī)中。在網(wǎng)絡(luò)上的消息傳遞主要通過尋徑來實(shí)現(xiàn)。常見的尋徑方式有存儲(chǔ)轉(zhuǎn)發(fā)尋徑和蟲蝕尋徑等。在存儲(chǔ)轉(zhuǎn)發(fā)網(wǎng)絡(luò)中以長度固定的包作為信息流的基本單位,每個(gè)結(jié)點(diǎn)有一個(gè)包緩沖區(qū),包從源結(jié)點(diǎn)經(jīng)過一系列中間結(jié)點(diǎn)到達(dá)目的結(jié)點(diǎn)。存儲(chǔ)轉(zhuǎn)發(fā)網(wǎng)絡(luò)的時(shí)延與源和目的之間的距離(段數(shù))成正比。而在新型的計(jì)算機(jī)系統(tǒng)中采用蟲蝕尋徑,把包進(jìn)一步分成一些固定長度的片,與結(jié)點(diǎn)相連的硬件尋徑器中有片緩沖區(qū)。消息從源傳送到目的結(jié)點(diǎn)要經(jīng)過一系列尋徑器。同一個(gè)包中所有的片以流水方式順序傳送,不同的包可交替地傳送,但不同包的片不能交叉,以免被送到錯(cuò)誤的目的地。蟲蝕尋徑的時(shí)延幾乎與源和目的之間的距離無關(guān)。在尋徑中產(chǎn)生的死鎖問題可以由虛擬通道來解決。虛擬通道是兩個(gè)結(jié)點(diǎn)間的邏輯鏈,它由源結(jié)點(diǎn)的片緩沖區(qū)、結(jié)點(diǎn)間的物理通道以及接收結(jié)點(diǎn)的片緩沖區(qū)組成。物理通道由所有的虛擬通道分時(shí)地共享。虛擬通道雖然可以避免死鎖,但可能會(huì)使每個(gè)請求可用的有效通道頻寬降低。因此,在確定虛擬通道數(shù)目時(shí),需要對網(wǎng)絡(luò)吞吐量和通信時(shí)延折衷考慮。
并行處理技術(shù)的并行軟件
并行編程技術(shù)什么是并行編程技術(shù)
并行編程通常是指軟件代碼,它促進(jìn)在同一時(shí)間執(zhí)行多個(gè)計(jì)算任務(wù)的性能。
這有點(diǎn)像有一個(gè)操場上有20個(gè)滑梯而不是一個(gè)。孩子們不必排隊(duì)等待輪到自己,因?yàn)樗麄兛梢酝瑫r(shí)玩。你可以使用電腦鼠標(biāo),一邊聽在線廣播,一邊更新電子表格中的信息,并對你的個(gè)人電腦做病毒掃描,這唯一的理由就是并發(fā)編程。
馬士基、CMA CGM在亞非聯(lián)合航線上增加蛇口港停靠通告:東方海外航運(yùn)公布2018年第一季度運(yùn)營概要!瓦倫西亞港為歐洲港口建立氫通道美國對中國反傾銷產(chǎn)品列表多家航空公司紛紛撤離尼日利亞市場海運(yùn)詢價(jià)方法_海運(yùn)費(fèi)詢價(jià)德文波特港海運(yùn)拼箱,深圳到德文波特 海運(yùn)拼箱查詢Alphaliner:韓進(jìn)海運(yùn)已回天乏術(shù)