##稀疏矩阵向量乘法与 MPI 并行
###Design 使用 MPI 并行化稀疏矩阵向量乘法:
在步骤 1 中使用一维行分解读取文件并将数据分发到所有处理器,这需要 O(n) 然后 O(nnz) 其中 n 是行数,nnz 是矩阵。 矩阵 A 数据以 CSR 格式读入和存储,其中包括三个数组:行指针、非零的列索引和矩阵值。 步骤 1 还涉及使用 MPI Bcast 将数据分发到 p 个处理器。
每个进程准备使用 prepareRemoteVec 函数获取它需要的非本地 Vector 元素。 在这里,它遍历矩阵的本地列索引并检查所需的远程向量条目是什么,然后调整本地向量数据数组 (vSize + numRemoteVec) 的大小,以在数组末尾保存来自其他处理器的这些附加远程向量条目。 最后,我们需要重新索引本地列索引数组(之前指向全局向量数据索引)。 我们遍历本地列索引数组,并让它们指
2021-09-07 11:14:39
10KB
C
1