欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    并行计算课程报告.docx

    • 资源ID:26304420       资源大小:244.19KB        全文页数:16页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    并行计算课程报告.docx

    1、并行计算课程报告 成绩: 并行计算导论课程报告专业: 软件工程 班级: 软件二班 学号: 140120010057 姓名: 蒋琳珂 2017年 6月 1日1、并行计算的实际意义并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。在应用需求方面,人类对计算机性能的需求总是永无止境的,在诸如预测模型的构造和模拟、工程设计和自动化、能源勘探、医学、军事以及基础理论研究等领域中都对计

    2、算提出了极高的具有挑战性的要求。例如,在作数值气象预报时,要提高全球气象预报的准确性,据估计在经度、纬度和大气层方向上至少要取200*100*2040万各网格点。并行计算机产生和发展的目的就是为了满足日益增长的大规模科学和工程计算、事务处理和商业计算的需求。问题求解最大规模是并行计算机的最重要的指标之一,也是一个国家高新技术发展的重要标志。2、拟优化的应用介绍应用jacobi迭代近似求解二维泊松方程。二维泊松方程:其中,和为已知函数,分别定义在的内部和边界上。对于任意正整数和,将网格剖分成个相同的方格。在网格节点上,用二阶中心差分来近似二阶偏导数。将差分近似代入泊松方程,便得到了五点差分离散格

    3、式,泊松方程的求之后用经典的jacobi算法来求解此方程组。从任意一初始近似解出发,迭代计算:迭代序号k=1,2,3直至近似解满足误差要求。若,且在边界上那么泊松方程的解析解为,若,且,那么泊松方程的一个解析解是。3、串行算法设计(或介绍)最耗时的是主循环,是一个三重循环嵌套,时间复杂度为3N。4、并行算法设计对主循环进行OpenMP并行优化,采用#pragma omp parallel for reduction(+:uerr) default(none) shared(c1,c2,fij,hy2,hx2,Nyp1)shared(u1,u0)private(ix,jy,tmp)时间复杂度无太

    4、大变化。但是多个线程运算也的确加速了其运算速度。5、采用的并行计算机结构介绍采用个人笔记本进行最终测试,其配置如下:6、基于OpenMP的并行程序实现#include#include#include#include#if defined(_WIN32)|defined(_WIN64)#include#define gettime(a) _ftime(a)#define usec(t1,t2) (t2).time-(t1).time)*1000+ (t2).millitm-(t1).millitm)*100)typedef struct _timeb timestruct;#else#inclu

    5、de#define gettime(a) gettimeofday(a,NULL)#define usec(t1,t2) (t2).tv_sec-(t1).tv_sec*1000000+ (t2).tv_usec-(t1).tv_usec)typedef struct timeval timestruct;#endif / defined(_WIN32)|defined(_WIN64)#define Mx 8191#define Ny 1023float uval(float x, float y) return (x*x + y*y);int main() float Widthy = 2.

    6、0, Heightx = 1.0; float *u0, *u1; float hx, hy, hx2, hy2, fij, c1, c2; float uerr, errtol, tmp, *tprt; int ix, jy, maxIter, iter; int Nyp1 = Ny + 1; timestruct t1, t2; long long telapsed; u0 = (float*)malloc(sizeof(float)*(Mx + 1)*(Ny + 1); u1 = (float*)malloc(sizeof(float)*(Mx + 1)*(Ny + 1); maxIte

    7、r = 100; errtol = 0.00f; hx = Heightx / Mx; hy = Widthy / Ny; /初始化u0/u1的左右边界 for (ix = 0; ix = Mx; ix+) u0ix*Nyp1 + 0 = u1ix*Nyp1 + 0 = uval(ix*hx, 0.0f); u0ix*Nyp1 + Ny = u1ix*Nyp1 + Ny = uval(ix*hx, Ny*hy); /初始化u0/u1的上下边界 for (jy = 0; jy = Ny; jy+) u0jy = u1jy = uval(0.0f, jy*hy); u0Mx*Nyp1 + jy =

    8、 u1Mx*Nyp1 + jy = uval(Mx*hx, jy*hy); /初始化u0的内部点 for (ix = 1; ix Mx; ix+) for (jy = 1; jy Ny; jy+) u0ix*Nyp1 + jy = 0.0f; fij = -4.0f; c1 = hx*hx*hy*hy; c2 = 1.0f / (2.0*(hx*hx + hy*hy); hx2 = hx*hx; hy2 = hy*hy; gettime(&t1); /主要迭代 for (iter = 1; iter = maxIter; iter+) uerr = 0.0f;#pragma omp paral

    9、lel for reduction(+:uerr) default(none) shared (c1,c2,fij,hy2,hx2,Nyp1) shared(u1,u0) private (ix,jy,tmp) for (ix = 1; ix Mx; ix+) for (jy = 1; jy uerr ? tmp : uerr; printf(iter = %d uerr =%en, iter, uerr); if (uerrerrtol) break; tprt = u0; u0 = u1; u1 = tprt; gettime(&t2); telapsed = usec(t1, t2);

    10、printf(历时 = %13ld 微秒 n, telapsed); free(u0); free(u1); return 0;7、并行优化结果分析编译平台:VS2017并行编程平台:OpenMP测试数据集合:100次jacobi迭代求二维泊松方程的近似解。集群测试:串行算法结果:iter为迭代次数,uerr为误差。时间单位为微秒。并行算法结果:加速比:15241150/2552944=5.97本机测试:串行算法:并行算法:加速比:13000617/6000371=2.17结论:每次测试中,误差单调减少,且趋于平稳。代码中设定误差阈值为0,保证每次迭代相同次数。 在集群和本机上,串行算法精确度

    11、一样,本机速度较快。采用cpu并行,集群的并行程度更高,所以速度有明显优势。本机速度相对较慢。主要原因是本机核数不如集群多。但由于reduction(+:uerr)字句,归约了误差,所以并行程度越高,误差越大,导致集群误差较大,而本机相对误差较小。8、并行计算导论学习体会并行计算导论这门课,概述介绍了并行计算的内容、特点和发展方向,并介绍了并行计算机的体系结构和一些著名的超级计算机。又深入介绍了几门并行编程方法,如MPI、OpenMP、CUDA等,让我们对并行编程有一个初步的认识。概述部分可以引发学生的学习兴趣,编程实战正好也满足了学生的学习欲望。老师提供了先进的计算平台也使学生们更好的了解、认识、学习并行计算。并行计算是一个热门而且很有作用的方向,这门课给学生打开了一扇求知的窗户,开阔了眼界,学习了知识。非常感谢老师给我们上了这么有意义的课程。我们也会继续努力,在这条路上越走越远。


    注意事项

    本文(并行计算课程报告.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开