MPI基础入门-1

MPI将一组进程定义成一个通信器.每个进程都有一个标识符range.

int MPI_Init(int argc,char * argv)

创建一个通信器,这个通信器就包含了所有的进程,默认为MPI_COMM_WORLD,很形象的定义一个MPI的共有世界。
argc表示变量的数目,argv是具体的传入参数

int MPI_Finalize()

关闭MPI的执行环境。

int MPI_Comm_rank(MPI_Comm comm, int*rank)

用来确定当前进程在本通信器里的进程号,建议主进程为0.

int MPI_Comm_size(MPI_Comm comm, int*size)

用来返回当前的通信器里有多少个进程.

同步消息传输

int MPI_Send(void*buf, int count, MPI_Datatype datatype,int dest, int tag, MPI_Comm comm)

阻塞消息发送
消息数据:
buf:所发消息的首地址
count:发送的数据的个数
datatype:发送数据的数据类型
消息信封:
dest:接受消息的进程的标识号
tag:消息的标签
comm:通信器

int MPI_Recv(void*buf, int count, MPI_Datatype datatype,int source, int tag, MPI_Comm comm, MPI_Status*status)

只要没有新的消息,这个进程就会阻塞
buf:所发消息的首地址
count:发送的数据的个数
datatype:发送数据的数据类型
消息信封:
dest:接受消息的进程的标识号
tag:消息的标签
comm:通信器
status:表示接受消息时的返回状态(MPI_SOURCE,MPI_TAG,MPI_ERROR)

int MPI_Reduce(void*sendbuf, void*recvbuf, int count,MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)

sendbuf:发送消息的首地址
recvbuf:接受消息的首地址
count:发送的数据的个数
datatype:发送数据的数据类型
op:规约操作
-MPI_MAX : 最大值
– MPI_MIN : 最小值
– MPI_SUM : 和
– MPI_PROD : 积
– MPI_LAND : 逻辑与
– MPI_BAND : 按位与
– MPI_LOR 逻辑或
– MPI_BOR : 按位或
– MPI_LXOR : 逻辑异或
– MPI_BXOR : 按位异或
root:接受消息的进程的进程号
comm:通信器

int MPI_Bcast(void*buffer, int count, MPI_Datatype datatype,int root, MPI_Comm comm)

允许从根进程广播到组中的所有其他进程。其参数与MPI_Send()函数的参数相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值