实验1 寻找完数的OpenMP并行程序.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1 寻找完数的OpenMP并行程序

深圳大学实验报告课程名称:并行计算实验名称:寻找完数的OpenMP并行程序姓名:学号:班级:软件工程实验日期:2014.11.19一.实验目的1) 用OpenMP编写基本的并行程序2) 掌握for编译制导语句3) 对并行程序进行简单的性能分析二.实验环境1) 硬件环境:32核CPU、32G内存计算机;2) 软件环境:Microsoft Visual Studio 2008;3) 登录方式:通过远程桌面(mstsc)连接hpc.szu.edu.cn:804,用户名和初始密码都是自己的学号。三.实验内容1) 实验要求:用OpenMP语言编写程序,求小于等于n的所有完数。程序必须采用原始方法依次判断每个小于等于n的数是否完数,不可利用其他高阶原理。2) 评分标准:首先要保证程序的运行结果正确,否则不得分,然后主要根据执行时间、加速比和分析来评分。3)参考函数setint FinishedNumber(intn),完成以下程序中的函数setint FinishedNumber(intn, intp),其中n代表一个整数,p代表线程数,该函数返回小于等于n的所有完数的集合。#includeiostream#includemath.h#includevector#includeset#includeutility#includealgorithm#includetime.husingnamespace std;setint FinishedNumber(intn){setint s;for (inti = 2; i = n; i++){intmaxv = (int)(sqrt(double(i)) + 1);int sum = 1;for (int j = 2; jmaxv; j++)if (i%j == 0)sum += j + i / j;if (sum == i)s.insert(i);}return s;}setint FinishedNumber(intn, intp){setint s;return s;}int main(){vectorpairint, int vTest;for (inti = 1000000; i = 5000000; i += 1000000)for (int j = 1; j = 32; j*=2)vTest.push_back(pairint, int(i, j));for (vectorpairint, int ::iterator iter = vTest.begin(); iter != vTest.end(); ++iter){clock_t pt = 0;pt -= clock();setint ps = FinishedNumber(iter-first, iter-second);pt += clock();clock_t st = 0;st -= clock();setint ss = FinishedNumber(iter-first);st += clock();cout iter-first , iter-second :;/*for (setint::iteratoriter = ps.begin(); iter != ps.end(); ++iter){cout *iter;}*/cout , execution time: pt / 1000.0;cout , speedup: st*1.0/pt endl;if (ps != ss){cout error! endl;}}return 0;}4)测试并行程序并分析其执行时间和加速比表1 执行时间(秒)节点数n1248163210000002000000300000040000005000000表2加速比节点数n1248163210000002000000300000040000005000000

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档