5 並行bc
2020-08-14 01:04:38
5.3訊息傳遞的程式設計模型MPI
- 一種基於訊息傳遞的程式設計模型。
- 94年6月,MPI論壇發佈MIPI version1.0,
- 產生時間較晚,它吸收其他多種並行環境的優點同時兼顧了效能、功能、移植性等特點,
- 幾年內便迅速普及成爲主流的並行程式設計模型
- 所有並行計算機都支援MPI
- 已成爲訊息傳遞程式設計模型的標準規範
- MPI本質上一個訊息傳遞函數庫,有上百個函數呼叫介面
- Fortran和C語言中可以直接對這些函數呼叫
- 是一種新的庫描述,不是一種語言
- MPI本身看作是一種標準或規範的代表,
- 目的是服務於進程間通訊這一目標,
- 並提供一個高效、可延伸、統一的並行程式設計環境
- 最新版本是2016年6月發佈的MPI3.1
- MPI論壇的網址
- http://mpi-forum.org/
5.3.1基本概念
1.通訊器( communicator)
- 理解爲一類進程的集合,
- 即一個行程羣組,
- 且在該行程羣組,進程間可相互通訊
- 一個通訊器是一個行程羣組和一個上下文組合
- 上下文可看作爲組的超級標籤
- 任何MPI通訊函數须在某個通訊器內發生
- MPI提供預設通訊器MPIL_COMM_WORLD
- 所有啓動的MPI進程通過呼叫MPI_Init()使自己被包含在該通訊器內
- 分組內通訊器和組間通訊器
- MPI程式在啓動時自動建立兩通訊器
- MPI_COMM_ WORLD(包含程式中所有MPI進程)
- MPI_COMM_ SELF(單個進程獨自構成,僅包含自己)。