3.6 缓存分配和使用方法 BACKWARDFORWARD


一个用户可指定一个缓存用于缓存以缓存模式发送的消息。由发送者完成缓存。

MPI_BUFFER_ATTACH( buffer, size)
 IN buffer 初始缓存地址(选择类型)
 IN size 按字节计数缓存尺寸(整型)

int MPI_Buffer_attach( void* buffer, int size)

MPI_BUFFER_ATTACH( BUFFER, SIZE, IERROR)
 <type>BUFFERR(*)
 INTEGER SIZE, IERROR

给MPI在用户存储空间提供一个缓存, 用于缓存正出发的消息。这个缓存只能用于以缓存模式发送的消息。同一时间一个进程只能联结一个缓存。

MPI_BUFFER_DETACH( buffer, size)
 OUT buffer 初始缓存地址(选择类型)
 OUT size 安字节计数缓存尺寸(整型)

int MPI_Buffer_detach( void** buffer, int* size)

MPI_BUFFER_DETACH( BUFFER, SIZE, IERROR)
 <type>BUFFER(*)
 INTEGER SIZE, IERROR

解出与MPI当前联结的缓存。这个操作将阻塞,一直到当前在缓存中全部消息已被传送完。在这个函数返回时,用户可以再使用或解出分配这个缓存所占用的空间。   

这节的语句描述了MPI缓存模式发送的行为。当没有缓存被联结时,MPI以零尺寸缓存与进程联结。   

在指定的缓存空间, 使用一个环型的连续空间分配策略, MPI必须为正出发的消息提供多缓存, 正出发的消息数据被发送进程缓存。下面我们概述一个定义这个策的模型实现。MPI可以提供更多的缓存, 可使用比下面描述的更好的缓存分配算法。另一方面,当下面描述的简单的缓存分配器用完空间时,MPI可发错误信号。特别是,如果与进程没有显式联结的缓存,那么任何缓存型发送可引起一个错误。  

MPI不给标准模式发送的缓存提供查寻或控制机制。生产商将给他们的实现提供这样的信息。   


Copyright: NPACT
BACKWARDFORWARD