MPI学习-规约函数MPI_Allreduce
来源:互联网 发布:各类数据出售 编辑:程序博客网 时间:2024/05/22 00:22
全局规约函数MPI_Allreduce:
将所有的发送信息进行同一个操作,所有进程均接收信息;
相当于先做MPI_Reduce,然后再做MPI_Scatter。
语法规则:
int MPI_Alleduce(void *input_data, /*指向发送消息的内存块的指针 */void *output_data, /*指向接收(输出)消息的内存块的指针 */int count,/*数据量*/MPI_Datatype datatype,/*数据类型*/MPI_Op operator,/*规约操作*/MPI_Comm comm);/*通信器,指定通信范围*/
举例:
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <mpi.h>#define N 3int main(int argc, char *argv[]){ int i, myrank, nprocs; int *send_buffer=new int[N]; int *recv_buffer = new int[N]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); for (i = 0; i < N; i++) { send_buffer[i] = myrank; } MPI_Allreduce(send_buffer, recv_buffer, N, MPI_INT, MPI_MAX, MPI_COMM_WORLD); for (i = 0; i < N; i++) { printf("myrank = %d, recv_buffer[%d] = %d\n", myrank, i, recv_buffer[i]); } MPI_Finalize(); return 0;}
进程总数为4的时候的输出:
注意:
send_buffer与recv_buffer 的datatype、datasize相同。
0 0
- MPI学习-规约函数MPI_Allreduce
- MPI学习-规约函数MPI_Reduce
- MPI_Reduce mpi规约函数
- MPI_ALLreduce函数
- MPI函数学习
- 用MPI进行分布式内存编程(二)MPI_allreduce MPI_scatt MPI_bcast.....
- mpi函数
- MPI函数
- mpi函数
- mpi学习日志(13):mpi4py与非阻塞型函数
- MPI函数列表
- 常用的MPI函数
- MPI常用函数速查表
- mpi学习日志(1):mpi与python
- MPI学习五 组通信MPI程序设计
- 【MPI学习1】简单MPI程序示例
- 【MPI学习1】简单MPI程序示例
- MPI学习笔记
- RedHat6.5 puppet配置(一)-准备工作
- Android-上传图片(二)_HttpClient
- 51单片机中断详解(中)
- 【Tech-so】So文件静态分析Step by Step(二) --------读懂IDA Pro
- 详解SQL Server数据修复命令DBCC的使用
- MPI学习-规约函数MPI_Allreduce
- 坐在马桶上看算法:快速排序
- HDU2017字符串统计
- 程序员必备的600个英语词汇(2)
- Spring使用JdbcTemplate实现对数据库操作 (内部类定义RowMapper)
- Qt之界面实现技巧
- eclipse项目迁移到android studio(图文最新版)
- 分享给设置自定义邮箱发送工资条源码
- web 中的数据分页显示