并行程序設計不但包含了串行程序設計,而且還包含了更多的富有挑戰性的問(wèn)題。

基本介紹

目前并行程序設計的狀況是:①并行軟件的發(fā)展落后于并行硬件;②和串行系統的應用軟件相比,現今的并行系統應用軟件甚少且不成熟;③并行軟件的缺乏是發(fā)展并行計算的主要障礙;④而且這種狀態(tài)仍在繼續.

其原因是:①并行程序設計不但包含了串行程序設計,而且還包含了更多的富有挑戰性的問(wèn)題;②串行程序設計僅有一個(gè)普遍被接受的馮*諾依曼模型,而并行計算模型雖有好多,但沒(méi)有一個(gè)被共同認可;③并行程序設計對環(huán)境工具的要求遠比串行程序設計先進(jìn)得多;④串行程序設計比較適合于自然習慣,且人們在過(guò)去積累了大量的編程知識和寶貴的軟件財富.

并行程序設計

:對于所希望的應用,很多并行代碼似乎不存在的;即使有,也常不能用于用戶(hù)的并行機上。因為并行代碼原來(lái)都是為不同的并行結構寫(xiě)的.

它的問(wèn)題是:至今并行算法范例不能被很好地理解和廣泛地接受;并行程序設計是建立在

不同的計算模型

上的,而它們沒(méi)有能像馮*諾依曼模型那樣被普遍的接受和認可。絕大部分被使用的并行程序設計語(yǔ)言都是Fortran和C的推廣,他們都不能夠充分地表達不同并行結構的特點(diǎn),既不成熟也

不通用

.并行程序設計工具依賴(lài)于具體的并行結構和計算機代的更迭,既不通用也不穩定,在某個(gè)并行平臺上開(kāi)發(fā)的并行程序很難移植到別的或將來(lái)的并行機上.

目前并行編程類(lèi)型逐漸匯聚于兩類(lèi):用于PVP,SMP和DSW的

共享變量

的單地址空間模型和用于MPP和機群的消息傳遞的多地址空間模型.

并行編程模型逐漸匯聚于三類(lèi)標準模型:數據并行(如:HPF),消息傳遞(如:MPI和PVM),和共享變量(如OpenMp).

現在人們希望高性能的并行機應是 具有單一系統映像的巨大的工作站,使得很多用戶(hù)都能利用增強處理能力和儲存容量來(lái)運行多個(gè)串行作業(yè),這就是所謂的串行程序并行系統spps.

當我們在實(shí)際的并行機上設計并行程序時(shí),絕大部分均是采用擴展Fortran和C語(yǔ)言的辦法,目前有三種擴展的辦法:一是庫函數法:除了串行語(yǔ)言所包含的庫函數外,一組新的支持并行性和交互操作的庫函數(如MPI消息傳遞庫和POSIXPthreads多線(xiàn)程庫)引入到并行程序設計中。二是新語(yǔ)言結構法:采用某些新的語(yǔ)言結構來(lái)幫助并行程序設計以支持并行性和交互操作(如Fortran 90 中的聚集數組操作); 三是編譯制導法:程序設計語(yǔ)言保持不變,但是將稱(chēng)之為編譯制導的格式注釋引入到并行程序中.