MPI(Message Passing Interface)是消息传递函数库的标准规范,支持C和Fortran,由众多并行计算机厂商、软件开发组织及并行应用单位共同维护的标准。
MPI是一种标准或规范,不是特指某一个对它的具体实现。MPI是一种消息传递编程模型,并成为此模型的代表和事实上的标准,服务于进程通信MPI是一种库描述,不是一种语言由Fotran+MPI或C+MPI组成,有上百个函数调用接口,可直接调用MPI_Init (int *argc,char ***argv)
MPI_Comm_size (MPI_Comm comm,int *size)
MPI_Comm_rank (MPI_Comm comm,int *rank)
MPI_Send (void *buf,int count,MPI_Datatype datatype,int dest,int tag,MPI_Comm comm)
MPI_Recv (void *buf,int count,MPI_Datatype datatype,int source,int tag,MPI_Comm,MPI_Status *status)
MPI_Finalize()
#include "mpi.h"#include <stdio.h>#include <string.h>void main(int argc,char* argv[]){ int myid; char message[20]; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid); if(myid == 0) { strcpy(message,"Hello PRocess 1"); MPI_Send(message,strlen(message),MPI_CHAR,1,99,MPI_COMM_WORLD); } else if(myid == 1) { MPI_Recv(message,20,MPI_CHAR,0,99,MPI_COMM_WORLD,&status); printf("Received:%s/n",message); } MPI_Finalize();}执行结果:
[root@node1 mpi]# mpirun -np 2 ./test-6-1Received:Hello process 1
新闻热点
疑难解答