| 楼主:paradiselifei |
 |
|
| 简述MPI通讯 |
在消息传递库方法的并行编程中,一组进程所执行的程序是用标准串行语言书写的代码加上用于消息接收和发送的库函数调用。其中, MPI(Message Passing Interface ) 是 1994 年 5 月发布的一种消息传递接口。它实际上是一个消息传递函数库的标准说明,吸取了众多消息传递系统的优点,是目前国际上最流行的并行编程环境之一,尤其是分布式存储的可缩放并行计算机和工作站网络以及机群的一种编程范例。 MPI 具有许多优点:具有可移植性和易用性;有完备的异步通信功能;有正式和详细的精确定义。固而为并行软件产业的增长提供了必要的条件。 在基于 MPI 编程模型中,计算是由一个或多个彼此通过调用库函数进行消息收、发通信的进程所组成。在绝大部分 MPI 实现中,一组固定的进程在程序初始化时生成,一般情况下,一个处理器只生成一个进程。这些进程可以执行相同或不同的程序(相应地称为单程序多数据( SPMD )或多程序多数据( MPMD )模式)。进程间的通信可以是点到点的,也可以是集合的。 MPI 只是为程序员提供一个并行环境库,程序员通过调用 MPI 的库程序来达到程序员所要达到的并行目的, MPI 提供 C 语言和 Fortran 语言接口。 MPI 是个复杂的系统,它包含了 129 个函数(根据 1994 年发布的 MPI 标准)。事实上, 1997 年修订的标准,称之为 MPI-2 ,已超过 200 个,目前最常用的也有约 30 个。然而我们可以只使用其中的 6 个最基本的函数就能编写一个完整的 MPI 程序去求解很多问题。这 6 个基本函数,包括启动和结束 MPI 环境,识别进程以及发送和接收消息: MPI_INIT: 启动 MPI 环境 MPI_Init( … ); MPI_FIANLIZE: 结束 MPI 环境 MPI_Finalize(); MPI_COMM_SIZE: 确定进程数 MPI_Comm_size( … ); MPI_COMM_RANK: 确定自己的进程标识符 MPI_Comm_rank( … ); MPI_SEND: 发送一条消息 MPI_Send( … ); MPI_RECV: 接收一条消息 MPI_Recv( … ) |
|
|
2008-05-15 19:42:37 |
|
 |
|