Advertisement

并行计算 MPI 系列(二): MPI 阻塞通信

阅读量:

阻塞式通信机制中,发送端执行send操作时必须等待接收端完成recv操作,二者协同才能实现信息传递。MPI对若干基础阻塞通信函数进行了封装处理,从而提升了调用便捷性。

1.标准通信模式:

复制代码
    MPI_Send(buf, buf_size, MPI_CHAR, process1, tag, MPI_COMM_WORLD);

    
    MPI_Recv(buf, buf_size, MPI_CHAR, process0, tag, MPI_COMM_WORLD);
    
    
    
    

上述两个函数分别承担数据发送与接收的功能,各自运行于两个独立的进程(process0与process1)之中。

(1). 发送与接收操作在双方进程同步启动(理想情况,但单核CPU环境下无法实现):

数据传输过程即时开始执行。

(2). 发送操作先于接收操作启动:

发送端进程将进入阻塞状态,直至接收端进程运行至MPI_Recv语句后,传输过程才会启动。在此期间,发送端将数据写入MPI环境的缓存区,而接收端则从该缓存区读取数据。

(3). 接收操作早于发送操作启动:

接收端进程首先运行,并处于等待状态,直到发送端执行发送语句后触发传输过程。

  1. 缓冲通信模式:
复制代码
       MPI_Buffer_attach(buf, bufs

全部评论 (0)

还没有任何评论哟~