我如何正确分散和聚集MPI(矩阵)?

时间:2019-04-09 19:34:46

标签: c++

我在尝试分散+收集Mat图片时遇到问题。

我要做的是分散并收集矩阵pic[rows][cols],进行分部计算,然后收集结果。

MPI_Scatter(pic, cols*rows_av, MPI_UNSIGNED_CHAR, picAux, cols*rows_av, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD); int ip_gx, ip_gy, sum; for(int y = ip*rows_av+1; y < (ip+1)*rows_av-1; y++){ for(int x = 1; x < cols ; x++){ ip_gx = x_gradient(src, x, y); ip_gy = y_gradient(src, x, y); sum = abs(ip_gx) + abs(ip_gy); sum = sum > 255 ? 255:sum; sum = sum < 0 ? 0 : sum; picAux[y][x] = sum; //picAux[y*rows_av+x] = sum; } } MPI_Gather(picAux, cols*rows_av, MPI_UNSIGNED_CHAR, pic, cols*rows_av, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD);

我曾尝试使用picAux作为辅助矩阵和辅助矢量,但图片始终为3/4暗(仅等级0有效)。我认为我在分散和聚集方面做错了。如果有人知道我在做什么不好,请告诉我,谢谢您的时间。

0 个答案:

没有答案