fbpx
维基百科

訊息傳遞介面

訊息傳遞介面(英語:Message Passing Interface,縮寫MPI)是一個平行計算應用程式接口(API),常在超級電腦電腦叢集等非共享內存環境程序設計。

历史

建立信息传递接口的努力始于1991夏天一小群研究员在奥地利的一个度假山庄开始的讨论。那次讨论之后,于1992年4月29-30号于維吉尼亞州威廉斯堡召开了一次关于分布式内存环境下的信息传递标准设置研讨会。在这次研讨会上讨论了对标准信息传递接口至关重要的一些基本特征,并建立了一个继续标准化此过程的工作组。杰克·唐加拉, Rolf Hempel, 托尼·黑英语Tony Hey, and David W. Walker于1992年11月提出了一些初始草稿提议,后被称为MPI1。在1992年11月,一个MPI的工作组会议在明尼亞波利斯召开,他们决定了为此标准化过程建立一个更正式的标注。MPI工作组在1993年的头九个月每6个星期见面一次。MPI标准草稿在93年11月的超级计算机会议上提出。在经过一阵子的公众论议后,MPI修改了一些部分,并于1994年6月发布了MPI1.0版本。这些会议和邮件共同建立了MPI论坛,此论坛后来开放至所有高性能计算的成员。

MPI包含了80个人40个组织的共同努力,他们主要都在美国和欧洲。主要的时下电脑供应商也涉入MPI,还有大学的研究员,政府公务员和产业界。

MPI标准定义了核心函式庫的语法和语义,这个函式庫可以被Fortran和C调用构成可移植的信息传递程序。MPI提供了适应各种并行硬件商的基础集,他们都被有效的实现。这导致了是硬件商可以基于这一系列底层标准来建立高层次的惯例,从而为分布式内存交互系统提供他们的并行机。MPI提供了一个简单易用的可移植接口,足够强大到程序员可以用它在高级机器上进行进行高性能信息传递操作。

在建立“真正”的MPI标准过程中,研究员们整合了几个系统最有用的特征到MPI中,而不是用一个系统来适应标准。其特征为IBM,Intel, nCUBE, PVM, Express, P4 and PARMACS等系统所用。

信息传递模式非常之吸引人,皆因它的广泛可移植性,以及能被用于分布式内存/共享内存的多核处理器,工作站网络,和这些架构的组合。信息传递模式可用于多重设定,独立于网络速度和内存架构。

概述

MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。

主要的MPI-1模型不包括共享内存概念,MPI-2只有有限的分布共享内存概念。 但是MPI程序经常在共享内存的机器上运行。在MPI模型周边设计程序比在NUMA架构下设计要好因为MPI鼓励内存本地化。

尽管MPI属于OSI参考模型的第五层或者更高,他的实现可能通过传输层的sockets和Transmission Control Protocol (TCP)覆盖大部分的层。大部分的MPI实现由一些指定惯例集(API)组成,可由C,C++,Fortran,或者有此类库的语言比如C#, Java or Python直接调用。MPI优于老式信息传递库是因为他的可移植性和速度。

特色

大多數訊息傳遞介面的實現為函式庫,亦不需要編譯器支持。

例子

由多行程來執行Hello World:

#include <stdio.h> #include <mpi.h> int main(int argc, char *argv[]) {  char processor_name[MPI_MAX_PROCESSOR_NAME];  int len;  MPI_Init(&argc, &argv);  MPI_Get_processor_name(processor_name, &len);  printf("Hello World from %s\n", processor_name);  MPI_Finalize();    return 0; } 

執行結果:

% mpicc hello.c % cat nodefile node1 node2 % mpirun -np 1 -hostfile nodefile a.out(由1節點來執行) Hello World from node1 % mpirun -np 2 -hostfile nodefile a.out(由2節點來執行) Hello World from node1 Hello World from node2 

實現

  • Open MPI- 是自由軟件開放源碼實現。[1] 走鵑(2008年6月-2009年11月TOP500第一快的超級電腦)[2](2011年6月至今第一快的超級電腦)也使用Open MPI。[3] [4]
  • Intel MPI-Intel基於開放源碼的MPICH2與MVAPICH2研發成的MPI。[5]
  • Platform MPI-Platform公司收購Scali MPI及HP MPI,研發成Platform MPI。[6]

参考文献

  1. ^ Open MPI: Open Source High Performance Computing. [2011-04-10]. (原始内容于2006-07-02). 
  2. ^ Jeff Squyres. Open MPI: 10^15 Flops Can't Be Wrong (PDF). Open MPI. [2008-11-22]. (原始内容 (PDF)于2021-02-23). 
  3. ^ Programming on K computer (PDF). Fujitsu. [2011-06-24]. (原始内容 (PDF)于2020-07-02). 
  4. ^ . 思科系統. [2011-06-24]. (原始内容存档于2011-06-28). 
  5. ^ Intel MPI Library - Intel Software Network. [2011-04-10]. (原始内容于2011-03-12). 
  6. ^ . [2011-04-10]. (原始内容存档于2011-07-11). 

外部連結

訊息傳遞介面, 英語, message, passing, interface, 縮寫mpi, 是一個平行計算的應用程式接口, 常在超級電腦, 電腦叢集等非共享內存環境程序設計, 目录, 历史, 概述, 特色, 例子, 實現, 参考文献, 外部連結历史, 编辑建立信息传递接口的努力始于1991夏天一小群研究员在奥地利的一个度假山庄开始的讨论, 那次讨论之后, 于1992年4月29, 30号于維吉尼亞州威廉斯堡召开了一次关于分布式内存环境下的信息传递标准设置研讨会, 在这次研讨会上讨论了对标准信息传递接口至关重要的一. 訊息傳遞介面 英語 Message Passing Interface 縮寫MPI 是一個平行計算的應用程式接口 API 常在超級電腦 電腦叢集等非共享內存環境程序設計 目录 1 历史 2 概述 3 特色 4 例子 5 實現 6 参考文献 7 外部連結历史 编辑建立信息传递接口的努力始于1991夏天一小群研究员在奥地利的一个度假山庄开始的讨论 那次讨论之后 于1992年4月29 30号于維吉尼亞州威廉斯堡召开了一次关于分布式内存环境下的信息传递标准设置研讨会 在这次研讨会上讨论了对标准信息传递接口至关重要的一些基本特征 并建立了一个继续标准化此过程的工作组 杰克 唐加拉 Rolf Hempel 托尼 黑 英语 Tony Hey and David W Walker于1992年11月提出了一些初始草稿提议 后被称为MPI1 在1992年11月 一个MPI的工作组会议在明尼亞波利斯召开 他们决定了为此标准化过程建立一个更正式的标注 MPI工作组在1993年的头九个月每6个星期见面一次 MPI标准草稿在93年11月的超级计算机会议上提出 在经过一阵子的公众论议后 MPI修改了一些部分 并于1994年6月发布了MPI1 0版本 这些会议和邮件共同建立了MPI论坛 此论坛后来开放至所有高性能计算的成员 MPI包含了80个人40个组织的共同努力 他们主要都在美国和欧洲 主要的时下电脑供应商也涉入MPI 还有大学的研究员 政府公务员和产业界 MPI标准定义了核心函式庫的语法和语义 这个函式庫可以被Fortran和C调用构成可移植的信息传递程序 MPI提供了适应各种并行硬件商的基础集 他们都被有效的实现 这导致了是硬件商可以基于这一系列底层标准来建立高层次的惯例 从而为分布式内存交互系统提供他们的并行机 MPI提供了一个简单易用的可移植接口 足够强大到程序员可以用它在高级机器上进行进行高性能信息传递操作 在建立 真正 的MPI标准过程中 研究员们整合了几个系统最有用的特征到MPI中 而不是用一个系统来适应标准 其特征为IBM Intel nCUBE PVM Express P4 and PARMACS等系统所用 信息传递模式非常之吸引人 皆因它的广泛可移植性 以及能被用于分布式内存 共享内存的多核处理器 工作站网络 和这些架构的组合 信息传递模式可用于多重设定 独立于网络速度和内存架构 概述 编辑MPI是一个跨语言的通讯协议 用于编写并行计算机 支持点对点和广播 MPI是一个信息传递应用程序接口 包括协议和和语义说明 他们指明其如何在各种实现中发挥其特性 MPI的目标是高性能 大规模性 和可移植性 MPI在今天仍为高性能计算的主要模型 主要的MPI 1模型不包括共享内存概念 MPI 2只有有限的分布共享内存概念 但是MPI程序经常在共享内存的机器上运行 在MPI模型周边设计程序比在NUMA架构下设计要好因为MPI鼓励内存本地化 尽管MPI属于OSI参考模型的第五层或者更高 他的实现可能通过传输层的sockets和Transmission Control Protocol TCP 覆盖大部分的层 大部分的MPI实现由一些指定惯例集 API 组成 可由C C Fortran 或者有此类库的语言比如C Java or Python直接调用 MPI优于老式信息传递库是因为他的可移植性和速度 特色 编辑大多數訊息傳遞介面的實現為函式庫 亦不需要編譯器支持 例子 编辑由多行程來執行Hello World include lt stdio h gt include lt mpi h gt int main int argc char argv char processor name MPI MAX PROCESSOR NAME int len MPI Init amp argc amp argv MPI Get processor name processor name amp len printf Hello World from s n processor name MPI Finalize return 0 執行結果 mpicc hello c cat nodefile node1 node2 mpirun np 1 hostfile nodefile a out 由1節點來執行 Hello World from node1 mpirun np 2 hostfile nodefile a out 由2節點來執行 Hello World from node1 Hello World from node2實現 编辑Open MPI 是自由軟件和開放源碼實現 1 走鵑 2008年6月 2009年11月TOP500第一快的超級電腦 2 及京 2011年6月至今第一快的超級電腦 也使用Open MPI 3 4 Intel MPI Intel基於開放源碼的MPICH2與MVAPICH2研發成的MPI 5 Platform MPI Platform公司收購Scali MPI及HP MPI 研發成Platform MPI 6 参考文献 编辑 Open MPI Open Source High Performance Computing 2011 04 10 原始内容存档于2006 07 02 Jeff Squyres Open MPI 10 15 Flops Can t Be Wrong PDF Open MPI 2008 11 22 原始内容存档 PDF 于2021 02 23 Programming on K computer PDF Fujitsu 2011 06 24 原始内容存档 PDF 于2020 07 02 Open MPI powers 8 petaflops 思科系統 2011 06 24 原始内容存档于2011 06 28 Intel MPI Library Intel Software Network 2011 04 10 原始内容存档于2011 03 12 Platform MPI 2011 04 10 原始内容存档于2011 07 11 外部連結 编辑 英文 訊息傳遞介面 页面存档备份 存于互联网档案馆 英文 Open MPI內部結構 The Architecture of Open Source Applications Volume II ISBN 9781105571817 取自 https zh wikipedia org w index php title 訊息傳遞介面 amp oldid 75033631, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。