MPI相关函数

int MPI_Buffer_attach(void *buffer, int size); //申请缓冲区
int MPI_Buffer_detach(void **buffer, int *size); //释放缓冲区,阻塞操作

MPI_Ssend() //同步通信,必须等待接受操作开始执行后才能返回。比如,分别给进程1和2发送数据,而接受的代码顺序是先接收2,再接收1,那么就会死锁。
MPI_Rsend() //就绪通信,只有接收进程的接收操作已经启动时,发送进程才能启动发送操作
MPI_WAIT //一直等到与该非阻塞通信对象相应的非阻塞通信完成后才返回,同时释放该非阻塞通信对象
MPI_TEST //若调用时,该非阻塞通信已经结束,则它和MPI_WAIT功能相同(完成标志flag=true)。若未结束,则也不必等待
          // 该非阻塞通信的完成,可以直接返回,但是完成标志flag=false,也不释放相应的非阻塞通信对象

//重复非阻塞通信,适用于循环结构内的通信调用
MPI_Send_init(&matrix[1][0], N, MPI_FLOAT, up_proc_id, tag1, MPI_COMM_WORLD, &request[0]);
MPI_Recv_init(&matrix[0][0], N, MPI_FLOAT, up_proc_id, tag2, MPI_COMM_WORLD, &request[1]);
MPI_Startall(2, &request[0]);
MPI_Start(&request[0]);
//以上都是

MPI_Get_count(MPI_Status* status, MPI_Datatype datatype, int* count) //返回count
MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status* status) //再未收到消息前得到消息的一些信息。返回status

MPI_Barrier(MPI_Comm communicator) //设置屏障,同步作用
MPI_Bcast(void* data, int count, MPI_Datatype datatype, int root, MPI_Comm communicator)
MPI_Scatter(void* send_data, int send_count, MPI_Datatype send_datatype, void* recv_data,
           int recv_count, MPI_Datatype recv_datatype, int root, MPI_Comm communicator) //send_count表示发给每个进程的消息的数量
MPI_Gather(void* send_data, int send_count, MPI_Datatype send_datatype, void* recv_data, int recv_count,
           MPI_Datatype recv_datatype, int root, MPI_Comm communicator) //recv_count表示从每个进程接收到的消息的数量
MPI_Allgather(void* send_data, int send_count, MPI_Datatype send_datatype, void* recv_data, int recv_count,
              MPI_Datatype recv_datatype, MPI_Comm communicator) //MPI_Gather + MPI_Bcast
MPI_Reduce(void* send_data, void* recv_data, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm communicator)

MPI_REQUEST_FREE

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值