gpt4 book ai didi

c++ - 如何使用 MPI 收集行和列分区矩阵?

转载 作者:行者123 更新时间:2023-11-30 19:51:34 24 4
gpt4 key购买 nike

我将如何收集分区 MPI 矩阵?

最初,我有一个矩阵,我将其分解为几个行和列的子矩阵,用于 floyd warshall 算法。

当我收集子矩阵时,它们是无序的。

而不是获取适合我的原始矩阵的值

M[ij] 00, 01, 02, 03, 10, 11... 

我按照子矩阵的顺序得到它们,(想象子矩阵是2x2)

00,01,10,11,02,03,12,13

如何对未排序的弗洛伊德矩阵重新排序?

最佳答案

您可以使用此代码来做到这一点

i = 0;
j = 0;
k = 0;
bump = 0;
for (written = 0; written < matrix_dimensions * matrix_dimensions; written += 1) {
matrix[written] = out_of_order_subblocks[k * matrix_dimensions * subblock_dimensions + j * subblock_dimensions * subblock_dimensions + i + bump];
i += 1;
if (i % subblock_dimensions == 0) {
i = 0;
j += 1;
if (j % grid_dimensions == 0) {
j = 0;
bump += subblock_dimensions;
if (bump == subblock_dimensions * subblock_dimensions) {
bump = 0;
k += 1;
}
}
}
}

关于c++ - 如何使用 MPI 收集行和列分区矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com