mpich

来源:互联网 发布:爱奇艺视频mac 编辑:程序博客网 时间:2024/05/21 07:57

M PICH的ADI接口( abst ract device interface):

ADI是MPICH获得可移植性和高效的核心机制, 它通过定义一组接口来抽象简单
的通信设备, 可以灵活地使用这些接口模拟更复杂的通信设备,这样降低了MPICH向特
性各异的硬件平台移植的复杂性


M PICH的Channel接口:

MPICH在提供ADI接口的同时, 给出了一个ADI的模型实现, 其中采用Channel
接口作为底层通信接口。Cha nnel接口的定义基于ADI实现中消息分为控制头和数据体
分段传输, 因而它包含5个必需的函数来进行数据传输:
M PID- SendCont rol 发送消息控制头, 参数中指明目标、控制头首地址、长度;
M PID- Recv Any Con trol 接收任意发送源的消息控制头, 且参数中返回发送源标识;
M PID- Cont rolMs g Av ail 轮询通信设备, 指示是否有消息到达;
M PID- SendChannel 发送消息数据体, 参数中指明目标、数据体首地址、长度;
M PID- Recv FromChannel 从指定的通信通道中接受消息体。
Channel接口的实现只需平台提供简单的进程间(节点内或节点间) 通信能力, 只要

有象UN IX提供的w ri te、read、select这样的通信支持就足够了。


基于Channel的ADI模型实现:

在MPICH提供的ADI模型实现中, 一个消息分为两部分: 数据部分, 由用户希望
传递的消息组成; 消息信封,包含消息源、消息长度、消息标识等描述消息的信息。MPICH
基于消息的大小选用三种不同的消息传输协议:

( 1) sho rt协议 将小于一定长度的用户消息(数据部分) 和对应的消息信封封装入一个

控制包发送, 发送的完成不依赖于目的方是否提交相应的接受;

( 2) eag er协议 对于一定长度的用户消息, 先将消息信封装入一个控制包发送, 不等

接受方应答接着就发消息体, 因为eager协议假设接受方有足够的缓冲空间, 使用eag er协

议的消息上限依赖于系统的缓冲能力;

( 3) rendezv ous协议 当消息非常大时使用,先向接受方发控制包提出发送请求, 当接

受方相匹配的接受提交后,返回一个表示可以发送的控制包, 发送方接到后即发消息体。在系

统配置时, 可指定协议对应的消息长度范围。

在这个ADI的模型实现中, 发送方无消息队列(发方消息队列由M PI实现层维护) ,
发方只是不断地向网络注入消息。接受方由ADI维护两个队列: 接受请求队列和意外消
息的队列。一个M PI的消息接受和查询操作将首先检查队列是否有匹配的消息, 若没有
则启动Channel层的接受消息控制头操作, 再按照所收到的控制头信息判断应采用的协
议, 进行相应的处理。意外消息(接受队列无匹配的接受) 将进入意外队列。该模型实
现采用Channel接口完成消息头和消息体的接收和发送,并采用了简单的流控,以提高系
统的可靠性。


基于MPICH的ADI高效实现MPI:

我们认为M PICH的可移植性非常好, 基于一个已有的消息传递系统实现ADI或
Channel相对是较容易的, 我们已在M PP体系结构的并行机上实现了M PICH的移植。
但考虑MPICH的结构特色, 充分利用底层硬件平台的特性高效移植MPICH是获得一
个高效MPI平台的有效途径。可以通过改善网络接口, 提供用户级访问, 把ADI直接建
立在更低的通信层之上; 也可以引入新的低开销通信机制(如Active Messag e、Fast Messag
e) 实现ADI。

0 0
原创粉丝点击