多核架构及编程技术

上传人:沈*** 文档编号:158872211 上传时间:2022-10-07 格式:DOC 页数:7 大小:78KB
返回 下载 相关 举报
多核架构及编程技术_第1页
第1页 / 共7页
多核架构及编程技术_第2页
第2页 / 共7页
多核架构及编程技术_第3页
第3页 / 共7页
点击查看更多>>
资源描述
多核架构及编程技术设计报告 基于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,DFTI, 1);ippsFree(pDst);ippsFree(pSrc);ippsFree(pDstMag);ippsFree(pSrc2);return 0;经过DFT曲线为: 转换的时间为:63us 作反DFT变化后的曲线为 : 原函数的图像为: 采用了多线程的方法。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!