98 缓冲发送 |
当MPI_Isend使用很笨拙时,MPI提供一个可以使用的发送例程(例如,许多小的消息)。
MPI_Bsend利用由用户提供的缓冲区来保存任何可以不用立即发送的消息。
int bufsize;
char *buf = malloc(bufsize);
MPI_Buffer_attach( buf, bufsize );
...
MPI_Bsend( ... same as MPI_Send ... );
...
MPI_Buffer_detach( &buf, &bufsize );
MPI_Buffer_detach调用直到所有消息被发送才完成。
MPI_Bsend的性能依赖于MPI的实现,并且也依赖于消息的大小。例如,使消息多出一个字节会引起性能上显著的下降。
Copyright: NPACT |