訊息傳遞介面
訊息傳遞介面(英語:Message Passing Interface,縮寫 MPI)是一个平行計算的應用程式介面(API), 定定咧超級電腦、電腦密集等等來享記持體環境程式設計。
歷史
建立資訊傳達介面的拍拚始佇咧一千九百九十一熱人一千群研究員佇咧奧地利的一个渡假山莊開始的討論。彼改討論了後,佇一九九二年四月二十九學三十佇維吉尼亞州威廉斯堡召開一改關於分散式記憶體環境下的資訊傳遞標準設定研討會。佇這擺研討會上討論矣對標準資訊傳達介面到關心的一寡基本特徵,並且建立一个繼續標準化此過程的工作群組。傑克 ・ 唐加拉,Rolf Hempel , 托尼 ・ 烏 , and David W . Walker 佇一九九二年十一月提出一寡初初的草稿提議,後被稱做 MPI 一。佇咧一九九二年十一月,一个 MPI 的頭路群組會議佇明尼亞波利斯召開,𪜶決定矣為此標準化過程建立一个閣較正式的標準。MPI 工作群組佇一九九三年的頭九個月每六个禮拜見面一擺。MPI 標準草稿佇九三年十一月的超級電腦會議頂頭提出。佇經過一站仔的公眾論議了後,MPI 修改一寡部份,並且一九九四年六月發布矣 MPI 一孵空版本。遮的會議佮郵件共同建立矣 MPI 論壇,此論壇後來開放到所有高效能計算的成員。
MPI 包含著八十个人四十个組織的共同努力,𪜶主要攏佇美國佮歐洲。主要的時陣電腦供應商嘛涉入 MPI,猶閣大學的研究員,政府公務員佮產業界。
MPI 標準定義矣核心函式庫的語法佮語意,這个函式庫會當予 Fortran 和 C 呼叫構成可移植的資訊傳達程式。MPI 提供了適應各種並列硬體商的基礎集,𪜶攏去予有效的實現。這致使著是硬體商會當基於這系列底層標準來建立高層次的慣例,對分散式記憶體互動系統提供𪜶並列機。MPI 提供一个簡單簡單用的會當徙栽介面,有夠強大到程式設計師會當用伊佇進階機器進行進行高效能資訊傳達操作。
佇咧建立「真的」的 MPI 標準過程當中,研究員整合幾个系統上有用的特徵到 MPI 中,毋是用一个系統來適應標準。其特徵為講 IBM,Intel , nCUBE , PVM , Express , P 四 and PARMACS 等系統所用。
資訊傳達模式非常之吸引人,攏因為伊的廣泛會當移植性,閣有通予人用佇咧分散式記持體內底 / 共享記持體的多核處理器,工作站網路,佮遮的架構的組合。資訊傳達模式通用佇偌重設定,獨立於網路速度佮記憶體架構。
概述
MPI 是一个跨語言的通訊協定,用佇咧編寫平行計算機。支援對等和廣播。MPI 是一个資訊傳遞應用程式介面,包括協定佮華語意說明,𪜶指明其實按怎佇各種實現中發揮其特性。MPI 的目標是高效能,大規模性,佮會當移植性。MPI 佇今仔日猶是高效能計算的主要模型。
主要的 MPI 建一模型無包括共享記持體概念,MPI 鋪二干焦有限的分布共享記持體概念。 猶毋過 MPI 程式定定佇咧共享記持體的機器上執行。佇咧 MPI 模型周邊設計程式比佇咧 NUMA 架構下設計愛好因為 MPI 鼓勵記持體在地化。
就算講 MPI 屬於 OSI 參考模型的第五層抑是閣較懸,伊的實現可能通過傳輸層的 sockets 和 Transmission Control Protocol ( TCP ) 崁大部份的重。大部份的 MPI 實現由一寡指定慣例集(API)組成,可由 C , C + + , Fortran , 抑是別類別館的語言親像 C # , Java or Python 直接呼叫。MPI 提著老式的資訊傳達庫是因為伊的可移植性佮速度。
特色
大多數訊息傳遞介面的實現為函式庫,亦無需要編譯器支援。
例
由濟行程來執行 Hello World:
執行結果:
` ` ` % mpicc hello . c
% cat nodefile node 一 node 二
% mpirun-np 一-hostfile nodefile a . out(由一節點來執行) Hello World from node 一
% mpirun-np 二-hostfile nodefile a . out(由二節點來執行) Hello World from node 一 Hello World from node 二 ` ` `
實現
- Open MPI-是自由軟體佮開放原始碼實現。行鵑(二空空八年六月-二空空九年十一月 TOP 五百第一緊的超級電腦)佮京(二空一一年六月到今頭一緊的超級電腦)嘛使用 Open MPI。
- Intel MPI-Intel 基於開放原始碼的 MPICH 二和 MVAPICH 二研發成的 MPI。
- Platform MPI-Platform 公司買物件 Scali MPI 佮 HP MPI,研發成 Platform MPI。
參考文獻
外部連結
- (英文)訊息傳遞介面
- (英文)Open MPI 內部結構(The Architecture of Open Source Applications , Volume II-ISBN 九九石七千八百一十一鋪空五百五十七刣一千八百一十七)