1 / 37
文档名称:

多核研究性课题实验报告.docx

格式:docx   大小:112KB   页数:37页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多核研究性课题实验报告.docx

上传人:pppccc8 2020/1/3 文件大小:112 KB

下载得到文件列表

多核研究性课题实验报告.docx

文档介绍

文档介绍:辽宁师范大学计算机与信息技术学院综合性实验报告课程名称: 多核并行程序设计 实验题冃: 基于主成分分析的并行程序设计学生姓名: 孙蕾 专业: 计算机科学与技术 学号: 20101118050005 实验日期: 2012年11月25日 实验成绩:—、实验目的通过对主成分分析法进行研究,了解主成分分析在生产生活中的重要应用性。在此基础上找到算法,给出计算对称矩阵特征值的串行算法,并在此基础上利用多核程序设计将其并行化,以优化运行速度。通过本实验了解并行程序设计原理并达到基本能应用的水平。—、实验内谷对主成分分析法进行学****明白其原理以及在现实生活中的应用方面和实际意义。按照对主成分分析的理解找到计算特征值的算法并完成串行程序。在串行程序的基础上应用多核程序设计的原理将程序并行化,分别对串行程序和并行程序计算运行时间,计算加速比,加深多核程序设计的理解。总结研究中的问题以及克服方法,心得和体会。三、实验过程(含结果抓图)串行程序代码及结果抓图#include<>#include<>include<>include<>//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//classMatrix定义矩阵类constintMax_xy=20; 〃矩阵的最大维数classMatrix{private:doubledata[Max_xy][Max_xy];unsignedx,y;public:〃x,y;Matrix();Matrix(constMatrix&source);voidcreat();voidinit();voidtranspose();〃默认构造函数〃拷贝构造函数〃输入矩阵〃角阵转置voidshow();doublemode()const;voidcheck_shiduichen();voidcreat_unit(unsignedi);voidset_x(unsignedxx);voidset_y(unsignedyy);unsignedget_x();unsignedget_y();voidshucheng(doublechangshu);〃输入此矩阵〃求一维矩阵的长度〃检查是否为是对称矩阵〃生成i行单位矩阵〃设置行数〃设置列数〃得到行数〃得到列数〃数乘运算〃定位输入数据〃定位得到数据voidsetdata(unsignedi,unsignedj,doublesource);doublegetdata(unsignedi,unsignedj);〃计算sturm系列的同好数voidsturm(); 〃求特征值unsignedsturm_s(doublem);Matrixoperator=(constMatrix&right);friendMatrix&operator+(constMatrix&left,constMatrix&right); 〃重载+号friendMatrix&openUoT-(constMatrix&left’constMatrix&right);//重载■号friendMatrix&opendoT*(constMatrix&left,constMatrix&right);〃重载乘号friendostream&operator«(ostream&os,constMatrix&source);〃重载输出friendvoidHouseholder(Matrix&source); 〃用Householde矩阵将实对称矩阵化为三对角矩阵);〃全局变量MatrixMatrixtemp_Matrix;//========================================================// 默认构造函数Matrix::Matrix(){init();}// 拷贝构造函数Matrix::Matrix(constMatrix&source){init();x=;y=;for(unsignedi=0;ivx;i++)for(unsignedj=O;j<y;j++)data[i][j]=[i][j];// voidMatrix::init()初始化矩阵元素x=y=0;for(unsignedi=0;i<Max_xy;i++)for(unsignedj=O;j<Max_xy;j++)data[i]|j]=0;// 矩阵转置voidMatrix::transpose(){doubletemp;intt;for(unsignedi=0;i<Max_xy;i++)for(unsignedj=O;j<