如何使用MPI收集行和列分区矩阵
How to gather row and column partitioned matrix with MPI?
我将如何收集分区的MPI矩阵?
最初,我有一个矩阵,我将其分解为多个行和列的子诊断,用于Floyd Warshall算法。
当我收集子媒体时,它们会无序。
而不是获得适合我原始矩阵
的值M[ij] 00, 01, 02, 03, 10, 11...
我以子矩阵的顺序获取它们(想象一下子矩阵是2x2)
00,01,10,11,02,03,12,13
如何重新排序未分类的floyd矩阵?
您可以使用此代码来执行
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;
}
}
}
}
相关文章:
- 使用指针在分区函数中实现随机分区点
- 如何使用第一个、中间和最后一个元素的中位数正确分区?
- 使用霍尔分区快速排序
- QuickSort中使用的Hoare分区代码(Ref Cormen Book)陷入无限循环
- 如何在包含自定义对象的容器中使用分区函数C++
- 使用霍尔分区方案的快速排序算法返回原始未排序列表
- 如何使用MPI收集行和列分区矩阵
- 尝试使用CPP程序将USB分区安装在Linux中
- 使用 std::p artition 对向量进行分区
- 使用 LLVM 的 libc++ 时,__1 符号从何而来?
- 如何使用 CreateFile API 打开分区
- 服务器端警告:聚合查询在没有分区键的情况下使用
- 在std::cout之后使用std::cin时,换行符从何而来
- 使用 CreateFile 访问驱动器分区
- 回文分区(如何弄清楚如何使用DFS)
- 快速排序中使用的两个分区版本的区别
- 为什么以及在何处在C++中使用引用和指针
- 基例如何影响使用递归函数的哪些行
- 如何使用C++将包含多个分区的映像写入Windows上的USB闪存驱动器
- 使用分区中值的约束打印数字的分区