5 並行bc

2020-08-14 01:04:38

5.3訊息傳遞的程式設計模型MPI

  • 一種基於訊息傳遞的程式設計模型。
  • 94年6月,MPI論壇發佈MIPI version1.0,
    • 標誌MPI誕生
  • 產生時間較晚,它吸收其他多種並行環境的優點同時兼顧了效能、功能、移植性等特點,
  • 幾年內便迅速普及成爲主流的並行程式設計模型
  • 所有並行計算機都支援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(單個進程獨自構成,僅包含自己)。