并行计算实验报告(高性能计算与网格技术)

并行计算实验报告(高性能计算与网格技术)

ID:38627743

大小:205.50 KB

页数:15页

时间:2019-06-16

并行计算实验报告(高性能计算与网格技术)_第1页
并行计算实验报告(高性能计算与网格技术)_第2页
并行计算实验报告(高性能计算与网格技术)_第3页
并行计算实验报告(高性能计算与网格技术)_第4页
并行计算实验报告(高性能计算与网格技术)_第5页
资源描述:

《并行计算实验报告(高性能计算与网格技术)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高性能计算和网格技术实验报告实验题目OpenMP和MPI编程姓名学号专业计算机系统结构指导教师助教所在学院计算机科学与工程学院论文提交日期一、实验目的本实验的目的是通过练习掌握OpenMP和MPI并行编程的知识和技巧。1、熟悉OpenMP和MPI编程环境和工具的使用;2、掌握并行程序编写的基本步骤;3、了解并行程序调试和调优的技巧。二、实验要求1、独立完成实验内容;2、了解并行算法的设计基础;3、熟悉OpenMP和MPI的编程环境以及运行环境;4、理解不同线程数,进程数对于加速比的影响。三、实验内容3.1、矩阵LU分解算法的设计:参考文档sy6.doc所使用的并行算法:在LU分

2、解的过程中,主要的计算是利用主行i对其余各行j,(j>i)作初等行变换,各行计算之间没有数据相关关系,因此可以对矩阵A按行划分来实现并行计算。考虑到在计算过程中处理器之间的负载均衡,对A采用行交叉划分:设处理器个数为p,矩阵A的阶数为n,,对矩阵A行交叉划分后,编号为i(i=0,1,…,p-1)的处理器存有A的第i,i+p,…,i+(m-1)p行。然后依次以第0,1,…,n-1行作为主行,将其广播给所有处理器,各处理器利用主行对其部分行向量做行变换,这实际上是各处理器轮流选出主行并广播。若以编号为my_rank的处理器的第i行元素作为主行,并将它广播给所有处理器,则编号大于等于

3、my_rank的处理器利用主行元素对其第i+1,…,m-1行数据做行变换,其它处理器利用主行元素对其第i,…,m-1行数据做行变换。根据上述算法原理用代码表示如下(关键代码):for(k=0;k

4、_data_arrray[i]);…}for(i=0;ithread_id;//线程IDintmyk=my_data->K_number;//外层循环计数Kfloatmychushu=my_data->chushu;//对角线的值ints,e;inti,j;s=(N-myk-1

5、)*myid/THREADS_NUM;//确定起始循环的行数的相对位置e=(N-myk-1)*(myid+1)/THREADS_NUM;//确定终止循环的行数的相对位置for(i=s+myk+1;i

6、为参数传递给线程,在多处理器电脑上,不同的线程并行执行,实现并行计算LU分解。在LU分解的过程中,主要的计算是利用主行i对其余各行j,(j)i)做初等行变换,由于各行计算之间没有数据相关关系,因此可以对矩阵按行划分来实现并行算法。考虑到计算过程中处理器负载的均衡,对矩阵采用行交叉划分;假设处理器个数为p,矩阵的阶数为n,则每个处理器处理的行数为。由于在OpenMP和MPI中并行算法的实现不太一样,所以接下来的两小节中我将分别针对两个编程环境设计LU分解的并行实现。3.2、OpenMP编程因为OpenMP是基于线程的编程模型,所以设计了一个基于多线程的OpenMP的LU分解算法,

7、关键代码如下:for(k=0;k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。