神威Ⅰ计算机系统
MPI培训手册
国家并行计算机工程技术研究中心
二零零零年八月


第一章 MPI简介
MPI(Message Passing Interface )是1994年5月发布的一种消息传递接口。它实际上是一个消息传递函数库的标准说明,吸取了众多消息传递系统的优点,是目前国际上最流行的并行编程环境之一,尤其是分布式存储的可缩放并行计算机和工作站网络的一种编程范例。MPI具有许多优点:具有可移植性和易用性;有完备的异步通信功能;有正式和详细的精确定义,固而为并行软件产业的增长提供了必要的条件。
在基于MPI编程模型中,计算是由一个或多个彼此通过调用库函数进行消息收、发通信的进行所组成。在绝大部分MPI实现中,一组固定的进程在程序初始化时生成,一个处理器生成一个进程。这些进程可以执行相同或不同的程序(相应地称为SPMD或MPMD模式)。进程间地通信可以是点到点的,也可以是集合的。
MPI只是为程序员提供一个并行环境库,程序员通过调用MPI的库程序来达到程序员所要达到的并行目的。MPI提供C语言接口和Fortran语言接口。
一个简单例子:
#include “mpi.h”
main(int argc,recv函数char **argv)
{
int myrank,i,j,k;
    MPI_Status status;
char msg[20];
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
if(myrank == 0){
    strcpy(msg,”Hello there”);
MPI_Send(msg,strlen(msg) + 1,MPI_CHAR,1,99,MPI_COMM_WORLD);
}else if(myrank == 1){
MPI_Recv(msg,20,MPI_CHAR,0,99,MPI_COMM_WORLD,&status);
}
MPI_Finalize();
}
1.1名词解释
1.1.1分布式内存
每个CPU都有自己的私有存储空间,数据从一个处理器到另一个处理器只有通过网络来传输,而共享存储中的多个CPU可同时访问同一内存单元。分布式系统的示意图如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。