MPI Message Passing Interface

来源:互联网 发布:淘宝怎么打不开了 编辑:程序博客网 时间:2024/04/30 20:12

訊息傳遞介面

维基百科,自由的百科全书
(重定向自MPI)

訊息傳遞介面(MPI- Message Passing Interface)是一個並行計算的API,常在超級電腦、電腦叢集等非共享內存環境程序設計。

目录

  [隐藏] 
  • 1 功能
  • 2 特色
  • 3 例子
  • 4 實現
  • 5 參考資料
  • 6 外部連結

[编辑]功能

MPI接口是用来提供必不可少的虚拟拓扑结构,同步和进程间通信功能(已映射到节点/服务器/计算机)以一种和语言无关的方式,通过语言特定的语法(绑定)和一些特定语言功能。通常,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 nodefilenode1node2% mpirun -np 1 -hostfile nodefile a.out (由1節點來執行)Hello World from node1% mpirun -np 2 -hostfile nodefile a.out (由2節點來執行)Hello World from node1Hello 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
  2. ^ Jeff Squyres. Open MPI: 10^15 Flops Can't Be Wrong (PDF). Open MPI [2008-11-22].
  3. ^ Programming on K computer. Fujitsu [2011-06-24].
  4. ^ Open MPI powers 8 petaflops. 思科系統 [2011-06-24].
  5. ^ Intel MPI Library - Intel Software Network
  6. ^ Platform MPI

[编辑]

原创粉丝点击