《并行计算的编程模型》一1.6 聚合通信

简介: 本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6 聚合通信

除了进程间点对点的消息通信,MPI还提供大量针对一组进程间通信的函数,基于一组进程的通信称之为聚合通信。聚合通信的进程都需要调用相同的聚合通信函数。通过大量的聚合通信算法研究,聚合通信采用具有高性能的聚合通信实现算法[73,270,284],因此该通信方式在并行编程中广泛应用。

screenshot

聚合通信有以下三种类型:
(1)同步。MPI_Barrier函数用于同步通信域内的所有进程,执行到MPI_Barrier函数的进程必须等待,直到所有进程均执行到MPI_Barrier函数,所有进程才会进入下一步程序操作。
(2)数据迁移。MPI提供大量通用的数据迁移函数。例如,MPI_Bcast函数将根进程中的数据发送到通信域中的其他进程上。MPI_Scatter函数将数据缓冲区中的数据分发到通信域中其他进程上。MPI_Gather函数功能与MPI_Scatter函数相反,该函数将其他进程上的数据收集到根进程上。MPI_Allgather函数功能与MPI_Gather函数类似,区别在于MPI_Allgather函数除了根进程外,通信域中其他进程也收集相同的数据。MPI_Alltoall函数实现组内进程数据全交换,每一个进程可向其他进程发送不同的数据,也可接收其他进程发送的数据。上述聚合通信函数如图1-6所示。除了基本的聚合通信函数外,MPI还提供其他聚合通信函数,从而允许用户向每个进程发送不等数量的数据。
(3)聚合运算。MPI提供归约和扫描操作,实现数据算术运算,例如求解最小值和最大值、求和、逻辑与运算以及其他用户自定义的计算算法。MPI_Reduce函数提供归约操作,结果保存在根进程中。MPI_Allreduce函数功能类似于MPI_Reduce函数,但结果保存在所有进程中。MPI_Scan函数对于每一个进程i,对进程0,…,i上的数据进行归约操作,结果存放到进程i上。MPI_Exscan函数功能类似于MPI_Scan函数,区别在于MPI_Exscan函数不对自身进程上的数据进行归约操作。MPI_Reduce_scatter函数同时包含归约和分发两项功能。
screenshot

图1-7 一种比图1-2中代码更加高效的数据发送通信方式。MPI_Reduce函数用于对所有进程上的数据进行求和操作,并将结果保存在0号进程上
所有聚合通信函数均提供阻塞和非阻塞两种通信方式。上述聚合通信函数均为阻塞式通信,只有通信完成后,聚合通信函数才返回。非阻塞式通信函数在名称中会加入字母“I”,例如MPI_Ibcast或者MPI_Ireduce。非阻塞聚合通信函数初始化通信后立即返回,无需等待通信操作完成。用户通过调用测试或者等待函数,获取通信操作完成情况或者等待通信操作完成。MPI提供大量计算和通信重叠的聚合通信函数,例如MPI_Ibarrier等函数。
在图1-7中,通过MPI_Bcast函数,实现将0号进程上相同的数据广播到其他进程上。同时,通过MPI_Reduce函数,实现将所有进程上的数据进行求和运算(MPI_SUM为MPI提供预定义的求和操作),并将结果保存在0号进程上。

相关文章
|
存储 数据库 云计算
抖音服务器是什么样的
抖音服务器采用分布式云计算技术,在全国多个区域如北上广、四川、贵州等地设有服务器集群,具备强大的并发能力和高带宽。通过OSS、CDN、SLB等技术优化,确保用户流畅体验。同时,字节跳动在海外也有广泛布局,采用自研或第三方云技术,实现全球覆盖。为了支持大量用户同时在线刷视频,抖音还采用了G口宽带和云部署技术,自动选择最近的服务器,保证高效稳定的运行。对于短视频应用,建议选择专业的IDC服务商,制定长期的服务器解决方案。
514 4
|
存储 运维 监控
带你从概念、指标、标准这3方面了解所谓的数据中心。
带你从概念、指标、标准这3方面了解所谓的数据中心。
1145 0
|
数据安全/隐私保护
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
547 0
|
机器学习/深度学习 监控 安全
基于Java的智能视频监控系统设计与实现
基于Java的智能视频监控系统设计与实现
|
Ubuntu 关系型数据库 PostgreSQL
部署harbor
在Ubuntu 22.04 LTS环境下,部署Harbor私有仓库的步骤包括:确保已安装Docker(版本24.0.6),参考官方v2.5.3安装指南,注意避免在NFS4挂载磁盘上部署以防止PostgreSQL相关问题。首先,生成SSL证书,然后更新Docker配置并重启服务。解压并配置Harbor离线安装包,修改`harbor.yml`,执行`prepare`和`install.sh`脚本,最后将Harbor设置为系统服务。
549 0
|
SQL 存储 人工智能
Google BigQuery深度解析:云端大数据分析服务的威力
【4月更文挑战第8天】本文是关于Google Cloud Platform的BigQuery在大数据和云技术领域的应用分析。BigQuery的核心特性包括无服务器、全托管架构,实现高性能的超大规模并行处理,并严格遵循安全与合规标准。在实战应用中,它用于数据湖分析、机器学习与AI,以及实时数据分析与BI。BigQuery的极致性能、易用性和与GCP生态的整合,使其成为云端大数据分析的强大工具,适用于各种行业场景,帮助企业释放数据价值。作者将持续分享相关技巧和最佳实践。
1755 0
|
存储 SQL 搜索推荐
Hive之数仓的分层及建模理论
转载:https://blog.csdn.net/qq_56870570/article/details/118938411
2386 0
|
并行计算
《并行计算的编程模型》一3.5.2 RMA函数使用
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1342 0
|
并行计算
《并行计算的编程模型》一3.5 远程内存访问:put和get
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1178 0
|
并行计算 API
《并行计算的编程模型》一3.1 引言
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1084 0