并行计算实验

上传人:枫** 文档编号:448475180 上传时间:2023-10-23 格式:DOCX 页数:13 大小:289.49KB
返回 下载 相关 举报
并行计算实验_第1页
第1页 / 共13页
并行计算实验_第2页
第2页 / 共13页
并行计算实验_第3页
第3页 / 共13页
并行计算实验_第4页
第4页 / 共13页
并行计算实验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《并行计算实验》由会员分享,可在线阅读,更多相关《并行计算实验(13页珍藏版)》请在金锄头文库上搜索。

1、并行计算实验报告学院软件学院年级2008级班级一班学号3007218144姓名赵立夫2010年3月31日实验一多线程计算n及性能分析作者:赵立夫完成时间:3月31日、实验内容1. 掌握Thread类用法2. 掌握java多线程同步方法3. 使用多线程计算n ;4. 对结果进行性能评价。、实验原理使用积分方法,即“Ji亠dx工 4 x丄01 +x20迟n 1 +i052 nI N丿计算n值,并使用java多线程进行多线程操作。程序流程图图1-1主线程流程图四、实现方法1. 方法简述:本程序使用java多线程方法:首先启动主进程,输入基数N和线程数threadNum;第二步,通过主进程创建子进程并

2、为每个子进程分配计算任务; 第三步,子进程执行计算认为并将结果返回到数组sums中; 最后,主进程将sums元素进行累加得到最终结果并输出。2. 程序的主要方法PaiThread类,实现计算指定区间内的累加和threadHandle.start()启动子线程,子线程将自动执run ()方法 threadHandle.join()确保主进程在所有子进程计算完毕后执行后续 任务。五、实验结果1. 实验结果数据表编号计算基数子线程数计算结果使用 时间1100000003.141594653588975436ms2100000023.141594653588901726ms3100000033.141

3、59465358889822ms4100000043.14159465358891825ms5100000053.14159465358891426ms610000033.14161265349813414ms71000000033.14159285358969580ms2. 部分结果截图图1-2单线程pai计算结果图图1-3多线程pai计算结果图3. 理论性能及实际结果分析编号子线程数 (不包括主线程)计算结果使用 时间加速 比103.141594653588975436ms1.0223.141594653588901726ms1.38333.14159465358889822ms1.644

4、43.14159465358891825ms1.44553.14159465358891426ms1.38本程序使用多线程方法来提升程序的执行速度,所以当线程数不 断增多时,程序运行时间应逐渐减少;再考虑到创建进程和信息传递 的开销,当线程数大于计算机的内核数量时,程序运行时间应该随着 线程数目的增加而增加。由于运行计算机为四核系统,所以当子线程数(除去主线程)由单 线程增加到3子线程运行时,程序运行时间由36ms降低为22毫秒, 而当子线程增加到4个(即线程数目大于内核数量时),程序运行时 间又上升到25ms (参照结果1至5),这与预期结果相符合;在看当 基数改变时的情况,在结果3, 6,

5、7中,子线程数量均为3个,运算基 数以10倍递增,运行时间也是成倍的减少或增加,(具体结果见上表), 同样和预期结果相符。通过实验数据的分析验证了并行计算在程序运 行性能上的理论。六、总结展望这次实验较为简单,并行化的方法非常直观,程序的逻辑也十分清晰。 在并行化方面的开销较少。通过本次实验主要是对并行化原理的一个验证, 证明了由多处理器分别运行线程带来的性能上的提高。也通过实验证明了当 线程数超过实际处理器数量时,性能的下降。通过本次实验,我掌握了使用 java进行多线程编程的基础知识,以及使用join等方法实现线程间的同步。实验二3PCF计算的多线程实现作者:杨春白完成时间:4月7日一、实

6、验内容1. 理解3PCF的计算原理;2. 掌握OPENMP编译制导语句的使用3. 掌握Linux环境下,openMP的编译执行4. 使用OPENMP实现3PCF计算二、实验原理1. 定义:点集D、R。定义D中的点为a.D, R中的点为b.UR。1 1 距离:rr2、r3、err2. 求:满足以下条件的三元组(空间中三角形)的数目, la.-b l=r 土err 且la.-b l=r 土err 且lb -b l=r 土err1 m n1 m 11 n 2m n 33. 实验解法:对于D中每一点a.,在R中找到与之距离为匚的点集R,找到与之距离为r21 1 2 的点集R。在点集R与R中,查找两点间

7、距离为r3的点组数目。累加。程序流程图图2-1 3pcf程序流程图四、实现方法1.方法简述:本次实验通过使用OPENMP方法实现并行:首先完成程序的单线程执行代码,原理见实验原理,执行过程见流程 图,主要通过for循环来实现,主循环for用来遍历dataD集合,第 二个for循环查找dataR中符合条件一的点,第三个for循环寻找 dataR中符合条件二的点,最后在以上找出的两个点集中找出的两点 是否符合条件三,如果符合,累加至sum,否则,继续循环; 并行化方案为,将第二和第三个for循环进行并行 最后,输出结果。2.程序的主要方法#pragma omp parallel shared(po

8、i ntSetl ,poi ntSet 2,pSe tl Size,pSe t2Size,num)#pragma omp for#pragma omp critical#pragma omp atomic五、实验结果1.实验结果数据表编 号文件1名称文件2名称计算结果并行计算 时间串行计算 时间1D32.txtR32. txt33412D256. txtR256. txt3D512. txtR512. txt4D1024. txtR1024. txt5D2048.txtR2048. txt6R4096. txtR4096. txt7R8192. txtR8192. txt8R10240.txt

9、R10240. txt9R20480. txtR20480. txt2.结果截图3. 理论性能及实际结果分析本次实验使用OPENMP编码,即由编译器自动优化程序并分配子线程进 程计算,因而忽略线程数目和其他偶然因素,随着输入数据的不断增 力口,运行时间应该急剧增大,结果值也应该急剧增大,而且伴随着存 储空间溢出的危险。由上表可见当输入数据不断增多时,运算结果的 确迅速变大,运行时间和存储空间的需求都在不断加大,这和预期是 相符的。4. 总结展望实验题目,作者,时间,实验内容,原理,程序流程图,实现方法,结果(数 据图表、效果图等),理论性能分析以及对实际结果的分析,总结展望(心 得体会等)。实

10、验三实验题目MPI实现Jacobi迭代作者韦阳完成时间2010/5/1、实验内容1. 理解Jacobi迭代的原理;2. 掌握MPI的使用方法;3. 使用MPI实现Jacobi迭代。二、实验原理/ | + / 1 + / . . + / - | h 匚丿 $ + I丿IW + I即矩阵中每一点的值等于上下左右四点的值的平均值。三、程序流程图:,begin J:四、实现方法1. 方法简述:本程序使用MPI方法:首先,采用行划分原则,将矩阵划分为四等份; 第二,编写初始化矩阵方法; 第三,发写消息发送和接受方法; 第四,应用Jacobi函数计算每点的值; 第五,迭代计算,总次数为十次。(需要注意边界

11、模块处理的特殊性。)2. 程序的主要方法MPI_Recv(&matrixAsubSize+lO, matrixSize, MPI_FLOAT,myid+l,10,MPI_COMM_WORLD, & status); MPI_Send(&matrixA01, matrixSize, MPI_FLOAT, myid-1, 10, MPI_COMM_WORLD);五、实验结果5. 实验结果数据表编号文件1名称文件2名称计算结果1D32. txtR32. txt2D256. txtR256. txt3D512. txtR512. txt4D1024.txtR1024. txt5D2048. txtR2

12、048. txt6R4096. txtR4096. txt7R8192. txtR8192. txt8R10240. txtR10240. txt9R20480. txtR20480. txt6. 结果截图7. 理论性能及实际结果分析本次实验使用OPENMP编码,即由编译器自动优化程序并分配子线程进 程计算,因而忽略线程数目和其他偶然因素,随着输入数据的不断增 力口,运行时间应该急剧增大,结果值也应该急剧增大,而且伴随着存 储空间溢出的危险。由上表可见当输入数据不断增多时,运算结果的 确迅速变大,运行时间和存储空间的需求都在不断加大,这和预期是 相符的。8. 总结展望实验题目,作者,时间,实验内容,原理,程序流程图,实现方法,结果(数 据图表、效果图等),理论性能分析以及对实际结果的分析,总结展望(心 得体会等)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号