c - MPI_Allgather 到同一个数组但在不同的索引
问题描述
考虑一下我有以下进程,它们有自己的某个大小的数组的副本(让长度为 4),并且每个进程都计算了一些值并根据压缩的行/列存储格式将其存储在数组中。
A = [ 。. . .]
P0: A[ 1 . 3.]
P1:A[。2. 4]
- P1 发送 A 到 P0
- P0 结合 P1.A 和 P0.A => [1 2 3 4]
有没有办法让我合并这些数组,例如使用某种类型的 AllGather?永远不会有任何重叠的值要合并。
我目前的方法是对每个进程使用 do MPI_Send(indexes_used, to P0),然后将 A 数组与另一个 MPI_Send 一起发送。
解决方案
如果每个进程上的空值设置为零,您只需将数组与MPI_Allreduce
.
推荐阅读
- r - 有没有办法从数据框中比较多个结果?
- azure - 如何编写 powershell 脚本以将 400 多个虚拟机转换为托管磁盘
- python - 如何使用 Python-pptx 在 PowerPoint 中的聚集条形图上反转类别顺序?
- jenkins - 如何在 Jenkins Pipeline 环境部分中获取 bash 脚本
- julia - Julia MethodError 数组 Int64
- html - 我有代码 json 代码,我想调整他们的 textField 大小
- javascript - 动态扩展 ES6 类
- r - r 基于唯一 id 的字符变量的子集
- c# - 有没有办法获取这个 Lambda 表达式的内部值
- excel - 检查一行可见单元格的过滤数据,如果没有找到数据移动到下一张表并在那里检查