并行矩阵向量乘法与进程线程解析
1. 并行矩阵向量乘法概述
矩阵向量乘法在科学计算中是常用的操作,用于计算 $Ab = c$,其中 $A \in R^{n×m}$ 是一个 $n × m$ 的矩阵,$b \in R^{m}$ 是一个大小为 $m$ 的向量。其顺序计算有两种实现方式:
- 按行计算 :将矩阵向量乘法视为矩阵 $A$ 的 $n$ 行与向量 $b$ 的 $n$ 个标量积的计算,即 $A \cdot b = \begin{pmatrix}(a_1, b) \ \vdots \ (a_n, b)\end{pmatrix}$,对应的 C 代码如下:
for (i=0; i<n; i++) c[i] = 0;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
c[i] = c[i] + A[i][j] * b[j];
- 按列计算 :将矩阵向量乘法写为矩阵 $A$ 的列向量 $\tilde{a} 1, \cdots, \tilde{a}_m$ 与系数 $b_1, \cdots, b_m$ 的线性组合,即 $A \cdot b = \sum {j=1}^{m} b_j \tilde{a}_j$,对应的 C 代码如下:
for (i=0; i<n; i++) c[i] = 0;
for (j=0; j<m; j++)
for
超级会员免费看
订阅专栏 解锁全文
1945

被折叠的 条评论
为什么被折叠?



