多核架构及编程技术.doc_第1页
多核架构及编程技术.doc_第2页
多核架构及编程技术.doc_第3页
多核架构及编程技术.doc_第4页
多核架构及编程技术.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多核架构及编程技术设计报告 基于OpenMP的二维方阵相乘及 基于IPP的函数DFT及反变换学院: 电子信息学院专业: 通信工程学号: 2011301200237姓名: 叶子童指导老师: 谢银波时 间: 2013年6月 基于OpenMP的二维方阵相乘姓名:叶子童 专业:通信工程 学号:2011301200237指导教师:谢银波设计原理 声明3个800阶的矩阵,用srand函数对A,B矩阵随机赋值,在主程序中用3个for循环来进行计算,用OpenMP实现循环并行化,用clock()函数统计运算时间并输出时间及C矩阵。主要功能 计算2个随机生成的800阶二维矩阵相乘的结果,统计运算时间并输出结果矩阵。设计的主要内容 实验代码为:#include stdafx.h#include #include #include stdlib.h#include #include int a800800, b800800, c800800; int main() int i, j, t, k; double duration; clock_t start, finish; for (int i=0;i800;i+) for (int j=0;j800;j+) aij=rand()%100; /随机产生-100的随机整数 for (int i=0;i800;i+) for (int j=0;j800;j+) bij=rand()%100; start=clock(); #pragma omp parallel shared(a,b,c) private(i,j,k) #pragma omp for schedule(dynamic) /循环动态分割成大小为chunk的块,动态分割给线程 for(i=0;i800;i+) for(j=0;j800;j+) cij=0; for(k=0;k800;k+) cij+=aik*bkj; printf( Time to do the calculate is ); finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( %2.6f secondsn, duration ); Sleep(2000);for(i = 0;i 800;i+)for(j = 0;j 800;j+) printf(%d ,cij);printf(n); return 0; 输出的运算时间为3.483s。 基于IPP的函数DFT及反DFT变换设计原理 用DFT_RToC_32f32fc(Ipp32f* pSrc, Ipp32fc*pDst, int len)函数实现DFT,用DFTInv_CToR_32f32fc(Ipp32f*pSrc2, Ipp32fc*pDst, int len)实现IDFT,在主程序中用 ippsVectorJaehne_32f(pSrc,len,1.0);产生函数 y=|sin(ex)|,直接调用2个函数进行运算,用spview显示图像。主要功能 求函数 y=|sin(ex)|在区间(05120)做单位采样后的DFT及IDFT变换结果,并输出图像。设计的主要内容 实验代码为:#include stdafx.h#include ipp.h#include tools.h#include stdio.h#include math.h#include time.hvoid DFT_RToC_32f32fc(Ipp32f* pSrc, Ipp32fc*pDst, int len)IppsDFTSpec_R_32f *pDFTSpec;ippsDFTInitAlloc_R_32f( &pDFTSpec, len, IPP_FFT_DIV_INV_BY_N,ippAlgHintFast );ippsDFTFwd_RToCCS_32f(pSrc, (Ipp32f*)pDst, pDFTSpec, 0 );ippsConjCcs_32fc_I(pDst, len);ippsDFTFree_R_32f(pDFTSpec);void DFTInv_CToR_32f32fc(Ipp32f*pSrc2, Ipp32fc*pDst, int len)IppsDFTSpec_R_32f *pDFTSpec;ippsDFTInitAlloc_R_32f( &pDFTSpec, len, IPP_FFT_DIV_INV_BY_N,ippAlgHintFast ); ippsDFTInv_CCSToR_32f(Ipp32f*)pDst,pSrc2,pDFTSpec,0);ippsConjCcs_32fc_I(pDst, len);ippsDFTFree_R_32f(pDFTSpec);int main(int argc, char* argv)Ipp64u start,stop;int len=512;int r;Ipp32f* pSrc =ippsMalloc_32f(len);Ipp32fc* pDst= ippsMalloc_32fc(len);Ipp32f* pDstMag= ippsMalloc_32f(len);Ipp32f* pSrc2= ippsMalloc_32f(len); for(r=0;rlen;r+) pSrcr=fabs(sin(exp(double)r);/ ippsVectorJaehne_32f(pSrc,len,1.0); start=ippGetCpuClocks(); DFT_RToC_32f32fc(pSrc, pDst, len); stop=ippGetCpuClocks();printf(DFT转换需要经过循环的次数:%dn,(stop-start); spView_32f( pSrc,len,原图像, 1 ); ippsMagnitude_32fc(pDst, pDstMag, len);spView_32f( pDstMag,len,DFT, 1 ); DFTInv_CToR_32f32fc(pSrc2,pDst,len);spView_32f( pSrc2,len,DF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论