并行计算实验.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

ld5559789 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档