确定是行主矩阵还是列主矩阵

时间:2020-04-18 22:59:44

标签: c matrix parallel-processing

有人可以指导我了解这是列乘矩阵还是行乘矩阵乘以矢量实现吗?如何使它对缓存友好,以便进行并行计算?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int k;
    int matrix[10];
    for(k=0; k<3*3; k++){
    matrix[k] = k+1;
    printf("%d : %d\n", k, matrix[k]);
    }

int vector_in_s[]={1,1,1};

  int rows, cols;
  int vector_out[10];
  for(cols=0; cols<3; cols++){
    vector_out[cols] = 0.0;
    for(rows=0; rows<3; rows++)
      vector_out[cols] += vector_in_s[rows] * matrix[rows*3 + cols];
  }

 int i;
 for(i=0; i<3; i++){
     printf("Result: %d\n",vector_out[i]);
 }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我可以为第一部分提供帮助; 这是列主要顺序,因为它在外部循环中的列上进行迭代,因此根据定义,它是列主要顺序。 有关更多说明,请参见link