一般并行計(jì)算機(jī)系統(tǒng)有兩個(gè)基本的體系結(jié)構(gòu):分布存儲(chǔ)和共享存儲(chǔ);诜植即鎯(chǔ)的 并行計(jì)算機(jī)的每個(gè)節(jié)點(diǎn)都有各自的本地存儲(chǔ)器,同時(shí)也能通過(guò)高速網(wǎng)絡(luò)接口等方式訪問(wèn)其 他節(jié)點(diǎn)的存儲(chǔ)器。各節(jié)點(diǎn)通過(guò)消息傳遞來(lái)進(jìn)行數(shù)據(jù)交換。而基于共享存儲(chǔ)的并行機(jī)系統(tǒng)則 是多個(gè)節(jié)點(diǎn)通過(guò)高速總線訪問(wèn)一個(gè)全局的存儲(chǔ)器空間。這種方式由于總線帶寬的限制, 一 般將處理器個(gè)數(shù)限制在2~16個(gè)之間。最新的并行計(jì)算機(jī)體系結(jié)構(gòu)使用分布存儲(chǔ)和共享存 儲(chǔ)混合的方式,即每個(gè)節(jié)點(diǎn)都是由2~16個(gè)基于共享存儲(chǔ)的處理器組成,再由多個(gè)這樣的節(jié) 點(diǎn)通過(guò)高速的通信結(jié)構(gòu)構(gòu)成分布存儲(chǔ)的并行計(jì)算機(jī)系統(tǒng)。 MPI是由MPI論壇組織開(kāi)發(fā)的適用于基于分布內(nèi)存的并行計(jì)算機(jī)系統(tǒng)的消息傳遞模 型。它提供了一個(gè)實(shí)際可用的、可移植的、高效的和靈活的消息傳遞接口標(biāo)準(zhǔn)。MPI以語(yǔ)言 獨(dú)立的形式來(lái)定義這個(gè)接口庫(kù),并提供了與C、Fortran和Java語(yǔ)言的綁定。這個(gè)定義不包含任何專用于某個(gè)特別的制造商、操作系統(tǒng)或硬件的特性。由于這個(gè)原因,MPI在并行計(jì)算界 被廣泛地接受。其標(biāo)準(zhǔn)已由原來(lái)的MPI-1發(fā)展到目前的MPI-2。 MPI-1標(biāo)準(zhǔn)規(guī)定了如下的規(guī)范:①Fortran77和C分別調(diào)用MPI子程序(函數(shù))的命名、調(diào) 用順序以及返回值的規(guī)則,所有的MPI實(shí)現(xiàn)都必須遵循這些規(guī)則,從而保證遵循這些標(biāo)準(zhǔn)的 MPI程序可以在任何平臺(tái)上的可移植性。②具體的MPI庫(kù)實(shí)現(xiàn)由硬件供應(yīng)商提供,從而開(kāi) 發(fā)出適合各供應(yīng)商硬件的最優(yōu)版本。MPI-2規(guī)范對(duì)MPI-1進(jìn)行了如下的擴(kuò)展:動(dòng)態(tài)進(jìn)程;單邊通信;非阻塞群集通信模式和通信子間群集通信模式;對(duì)可擴(kuò)展的I/0的支持,叫作MPI- I0,在MPI- 1 中, IO 問(wèn)題全部忽略, MPI- 1只定義對(duì)Fortran 77和C語(yǔ)言的綁定, MPI-2將語(yǔ) 言綁定擴(kuò)展到Fortran 90和C++;對(duì)實(shí)時(shí)處理的支持;擴(kuò)展了MPI-1 的外部接口,以便使環(huán) 境工具的開(kāi)發(fā)者更易于訪問(wèn)MPI對(duì)象。這將有助于開(kāi)發(fā)剖析(profiling)、監(jiān)視(monitoring) 和調(diào)試(debugging)工具。
|