並行編程模式主要有以下三種:
共享地址空間模式:以OpenMP為代表,主要是利用添加並行化指令到順序程序中,由編譯器完成自動並行化。
消息傳遞模式:以MPI為代表,PVM是消息傳遞模式的一個變種。
數據並行模式:比較少見,但以其獨特的處理方式受到特定用戶群的喜歡。 我可以這樣打比方:作並行計算好比是蓋樓房,你有了Beowulf和MPI就好比是有了砂石,水泥和鋼材,你可以蓋最美的房子,但你必須使用最原始狀態的原材料,付出可觀的智力勞動;你有了OpenMP就好比是有了預制板和各種預制件,可以非常快速地造房子,事半功倍;你有了數據並行環境,可以比作你有了包工頭,很多事情您就可以完全依靠他了。也許我的比喻方式不是很恰當,但是三種編程模式的優劣、效率是很有差別的,可以不誇張地說 OpenMP比MPI要容易很多倍。 在現今流行的Beowulf集群上,MPI和PVM是可以實現的,不管使用千兆網,SCI,還是IB;但是,在這種集群上OpenMP 是沒有辦法實現的。要實現OpenMP編程,至少要有4/8路處理器的SMP系統以及相應的編程環境;要實現數據並行編程模式,光有免費的Beowulf +OSCAR環境遠遠不夠。