- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验(一)多线程计算n性能分析
、实验内容及原理:
通过多线程方法,
用C语言实现。采用积分法,由如下公式求n:
兀项Lx
01+x2
0-aN1+-
分析性能:
并通过双向比较,
1) 计算量相同,线程数不同。例如,个线程时所需要的时间。
2) 线程数相同,计算量不同。例如分别取不同的数值。
N取1000,000,测试使用1、2、3、4
只考察单线程和双线程的性能对比,N
开始
1=
iN
KNUM
jN
结束
结束
第i个线程-执行的函数开始
二、程序流程图
返叵
Thread[i]=thread[i]+4/(1+(i+0.5)/NNM*(i+0.5)/NUM)
线程数=N
处理数据数=NUM
线程数组 thread[N]
Pi=0
输出结果
等待第i个线程结束
k=k+N
i=i+1
j=j+1
创建第i个线程
解锁
加锁
Pi=pi+thread[i]
K=IThread[i]=0
j=0
三、实验结果:
(1)数据图表:
□N=1000000
2)线程数相同,计算量不同。thread_num=2,N取不同的数值。
□threadnum=2
□threadnum=2
thrEad_auin=4
thrEad_auin=4
3.14159270.0372^60000
(2)效果图:
1)计算量相同,线程数不同。N=1000,000,thread_num=1,2,3,4,5性能对比。
[usErU4y5ualyms]?./a.outthrEad_auin=l
a.0700520000
thread_num=2
3.1415927
0.0551270000
thread_num=5
3.1415927
0.0429790000
N=1000000thread_nun=2
N=1000000thread_nun=23.14159270.0547810000
thread_nwn=3
3.1415927
0.0399170000
2)线程数相同,计算量不同。thread_num=2,N取不同的数值。
N=50000
thread_num=2
3.1415927
0.00364C0000
N=100000thrEBd_num=2
0.005^340000
N=5000000thEEad_num=2
0.2736450000
N=500000
thread_nim=2
3.1415927
0.0281420000
四、 理论性能分析
首先,考虑单线程多个N的情况,随着N的加大,计算量加大,计算时间必然也会随着增加。其次,考虑多线程固定N的情况,随着线程数增加,同时计算的数量在增加,计算时间必然会相应减少,但是会有一个极限值,不会随着线程数的增加而无限制的减少。(值得注意的是,时间采用clock()计算精度不高。)
五、 实验结果分析
如上面截图所示,在单线程计算量不同的情况下,计算时间会随着计算量的增加而增加。在多线程计算量相同的情况下,计算时间会相应减少。
六、 总结展望
对于大量的重复式计算,我们可以利用所学习的并行知识解决问题,尤其像这种可以进行域分解的算法,我们完全可以创建多线程来减少计算时间,提高效率,相信以后的学习和工作中,并行会给我们带来更多的方便。
实验题目二:3PCF计算多线程实现
一、实验内容
已知:点集D、R。
定义D中的点为气^。,R中的点为bieRo
距离:r、r、r、err
求:满足以下条件的三元组(空间中三角形)的数目
a,二、实验原理「|a-b|=r±err且|a-b|=r±err
a,二、实验原理「
im1 in2 mn3
对于R中所有点,判断两两之间是否满足距离r3,若满足,保存点对。在D中每个点都和点对做比较,判断是否满足一边距离为r1,另一边距离为r2,若满足则累加。
三、程序流程图
开始拓:3祢
打开玄件R32打开成功让Air圮康
开始
拓:3祢
打开玄件R32
打开成功
让Air圮康2鞍揭
ArTaynum=O
lt=4J
剧捌布中策‘‘、曲曜瞄中的第」个点时宠#滞足「LE斜T
threadk]=thrcarJfk]
第J个点招普是
保衍职戳组中
AtTByruim?+
ReRult-thrend?kl
J-j+1
i_i+i
四、实验结果:
(1)数据图表:
1)线程数相同,计算量不同
35
30
25
20
15
口线程数为4
10
datasize=32
datasize=256datasize=512
datasize1024
datasize=2048
(2)效果图:
1)线程数相同,计算量不同
2)计算量相同,线程数不同
thrEad_n
文档评论(0)