行云

行至水穷处,坐看云起时。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年5月28日

摘要: C=A*B以C来划分,假设线程数为m,矩阵维度为n*n。那么每个线程计算C的元素个数为n*n/m;/*矩阵并行计算C=A*B --- C(i,j)等于A的第i行乘以第j列*/#include <stdio.h>#include <time.h>#include <stdlib.h>#include <math.h>#include <windows.h>/* 生成n*n矩阵*/void GenerateMatrix(float *m, int n);void PrintMatrix(float *p, int n);void Gene 阅读全文
posted @ 2012-05-28 21:38 windflying 阅读(4485) 评论(0) 推荐(0) 编辑

摘要: 将整个矩阵分解为这样的小块,每次完成一对小块的计算,以提高Cache的命中率。提示:图中n=N/m计算次序为A11*B11, A11*B12,…, A11*B1n,,由于反复使用A11,因此可以提高Cache的命中率。/*矩阵分开计算C=A*B --- C(i,j)等于A的第i行乘以第j列*/#include <stdio.h>#include <time.h>#include <stdlib.h>#include <math.h>#include <windows.h>/* 生成n*n矩阵*/void GenerateMatrix( 阅读全文
posted @ 2012-05-28 20:43 windflying 阅读(10950) 评论(0) 推荐(0) 编辑