欢迎来到天天文库
浏览记录
ID:57179059
大小:39.00 KB
页数:7页
时间:2020-08-05
《QR分解-实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、并行计算课程考核实验报告考核题目:QR分解算法的并行实现并行实现方式:OpenMP1.问题概述QR分解法是目前求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为householder矩阵,然后再应用QR方法求特征值和特征向量。它是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法。2.串行代码描述串行主要代码如下:#include#include#include#include#definen100//maxNvoidMatr
2、ix_print(doubleA[n][n]){for(inti=0;i3、++)for(intj=0;j4、=0;for(inti=n-k;i5、emp);Matrix_multiply(Q,H,temp);Matrix_copy(Q,temp);}voidMatrix_input(doubleA[n][n]){srand((unsigned)time(NULL));for(inti=0;i6、A);printf("A:");Matrix_print(A);for(inti=0;i=2;i--)householder_trans(A,i,Q);clock_tend=clock();printf("R:");Matrix_print(A);printf("Q:");Matrix_print(Q);printf("串行时间time=%.0fms",d7、ouble(end-start));system("pause");}3.并行化设计思路a.将有for循环且没有数据关系、计算量大的计算进行并行优化;b.将毫不相关且可独立运行的代码块进行并行优化;c.程序主要优化是对householder变换里的乘法和矩阵赋值进行优化。4.并行代码描述#include#include#include#include#include#definen4//maxNvoidMatrix_print(doubleA[n][n]8、){for(inti=0;i
3、++)for(intj=0;j4、=0;for(inti=n-k;i5、emp);Matrix_multiply(Q,H,temp);Matrix_copy(Q,temp);}voidMatrix_input(doubleA[n][n]){srand((unsigned)time(NULL));for(inti=0;i6、A);printf("A:");Matrix_print(A);for(inti=0;i=2;i--)householder_trans(A,i,Q);clock_tend=clock();printf("R:");Matrix_print(A);printf("Q:");Matrix_print(Q);printf("串行时间time=%.0fms",d7、ouble(end-start));system("pause");}3.并行化设计思路a.将有for循环且没有数据关系、计算量大的计算进行并行优化;b.将毫不相关且可独立运行的代码块进行并行优化;c.程序主要优化是对householder变换里的乘法和矩阵赋值进行优化。4.并行代码描述#include#include#include#include#include#definen4//maxNvoidMatrix_print(doubleA[n][n]8、){for(inti=0;i
4、=0;for(inti=n-k;i5、emp);Matrix_multiply(Q,H,temp);Matrix_copy(Q,temp);}voidMatrix_input(doubleA[n][n]){srand((unsigned)time(NULL));for(inti=0;i6、A);printf("A:");Matrix_print(A);for(inti=0;i=2;i--)householder_trans(A,i,Q);clock_tend=clock();printf("R:");Matrix_print(A);printf("Q:");Matrix_print(Q);printf("串行时间time=%.0fms",d7、ouble(end-start));system("pause");}3.并行化设计思路a.将有for循环且没有数据关系、计算量大的计算进行并行优化;b.将毫不相关且可独立运行的代码块进行并行优化;c.程序主要优化是对householder变换里的乘法和矩阵赋值进行优化。4.并行代码描述#include#include#include#include#include#definen4//maxNvoidMatrix_print(doubleA[n][n]8、){for(inti=0;i
5、emp);Matrix_multiply(Q,H,temp);Matrix_copy(Q,temp);}voidMatrix_input(doubleA[n][n]){srand((unsigned)time(NULL));for(inti=0;i6、A);printf("A:");Matrix_print(A);for(inti=0;i=2;i--)householder_trans(A,i,Q);clock_tend=clock();printf("R:");Matrix_print(A);printf("Q:");Matrix_print(Q);printf("串行时间time=%.0fms",d7、ouble(end-start));system("pause");}3.并行化设计思路a.将有for循环且没有数据关系、计算量大的计算进行并行优化;b.将毫不相关且可独立运行的代码块进行并行优化;c.程序主要优化是对householder变换里的乘法和矩阵赋值进行优化。4.并行代码描述#include#include#include#include#include#definen4//maxNvoidMatrix_print(doubleA[n][n]8、){for(inti=0;i
6、A);printf("A:");Matrix_print(A);for(inti=0;i=2;i--)householder_trans(A,i,Q);clock_tend=clock();printf("R:");Matrix_print(A);printf("Q:");Matrix_print(Q);printf("串行时间time=%.0fms",d
7、ouble(end-start));system("pause");}3.并行化设计思路a.将有for循环且没有数据关系、计算量大的计算进行并行优化;b.将毫不相关且可独立运行的代码块进行并行优化;c.程序主要优化是对householder变换里的乘法和矩阵赋值进行优化。4.并行代码描述#include#include#include#include#include#definen4//maxNvoidMatrix_print(doubleA[n][n]
8、){for(inti=0;i
此文档下载收益归作者所有