作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 int 数组执行 MPI_Gatherv,但不知道每个进程中每个数组的大小。有办法吗?
这是我的代码片段。
#include "mpi.h"
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
MPI_Init(&argc, &argv);
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
int *local_arr;
int *arr;
int local_n;
int n;
if (rank == 0) {
// do gatherv without knowing the element sizes and displacements
} else {
// fill array with random size
srand(rank);
local_n = (rand()%10)+1;
local_arr = new int[local_n];
for (int i = 0; i < local_n; i++) {
local_arr[i] = i;
}
// do gatherv without knowing the element sizes and displacements
}
}
最佳答案
你真的不能那样做。 displacements
和 element_sizes
参数的存在表明了这一点。如果真的没有办法知道(没有办法在 root 处计算)root 将收到的计数,您将需要从每个节点并将其用作 MPI_Gatherv
中的位移
。
关于c++ - 有没有办法在不知道每个进程中每个数组的大小的情况下执行 MPI_Gatherv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457620/
我是一名优秀的程序员,十分优秀!