中科大并行程序实验报告

中科大并行程序实验报告

ID:15269565

大小:1.83 MB

页数:10页

时间:2018-08-02

中科大并行程序实验报告_第1页
中科大并行程序实验报告_第2页
中科大并行程序实验报告_第3页
中科大并行程序实验报告_第4页
中科大并行程序实验报告_第5页
资源描述:

《中科大并行程序实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、并行程序设计实验报告公共部分1.用MPI_Send、MPI_Recv实现MPI_Bcast、MPI_Alltoall、MPI_Gather、MPI_Scatter等MPI群及通信函数功能。_MPI_Bcast:程序运行结果如下伪代码如下:_MPI_Bcast(sendbuf,sendcount,sendtype,root,comm)对每个处理器执行以下算法ifmy_rank=rootthenfori=0topdo//p为进程个数MPI_Send(sendbuf,sendcount,sendtype,i,root,comm)//root向每个进程发送消息endfo

2、rendif//每个进程从root接收带有root标签的消息,接受信息存在各自的sendbuf中MPI_Recv(sendbuf,sendcount,sendtype,root,root,comm.,&status)_MPI_Scatter:将字符串”abcdefgh”以进程2为根散播出去,程序运行结果如下:伪代码如下:_MPI_Scatter(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,root,comm)各处理器执行以下算法ifmy_rank=rootthenfori=0tosendcountd

3、oMPI_Send(sendbuf+i,1,sendtype,i,root,comm)//将sendbuf中的信息按进程标识顺序发送给各个进程endforendif//每个进程从root处接收各自的消息,并存在recvbuf中第root号位置MPI_Recv(recvbuf+root,1,recvtype,root,root,comm.,&status)_MPI_Alltoall:进程0到进程5存储的数据分别为”000000”到”555555”,经全局交换之后运行结果如下:伪代码如下:_MPI_Alltoall(sendbuf,sendcount,sendtyp

4、e,recvbuf,recvcount,recvtype,comm)对每个处理器执行以下代码:fori=0top-1_MPI_Scatter(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,i,comm)//_MPI_Scatter即为前一个程序的伪代码//Alltoall就是每一个进程都以自己为root执行一次Scatterendfor_MPI_Gather:将四个进程的第3个字符汇聚到进程2,执行结果如下:伪代码如下:_MPI_Gather(sendbuf,sendcount,sendtype,re

5、cvbuf,recvcount,recvtype,root,comm)对每个进程执行以下代码MPI_Send(sendbuf,sendcount,sendtype,root,root,comm)ifmy_rank=rootthenfori=0top-1doMPI_Recv(recvbuf+i,recvcount,recvtype,i,root,comm.,&status)endforendif2.LU分解的MPI实现(顺序划分)5个节点、处理9x9矩阵时运行结果如下:伪代码如下:输入:矩阵A(nxn)输出:下三角矩阵L(nxn),上三角矩阵U(nxn)Begin

6、对所有处理器my_rank(0..p-1)同时执行如下算法:fori=0tom-1do//对处理器的各行**************forj=0top-1doif(my_rank=j)thenv=j*m+i;//当前主行************************fork=vtondof[k]=a[i,k]endforelsev=j*m+i;//当前主行************************接收主行所在处理器广播来的主行元素Endifif(my_rank=j)then//编号为j的处理器对其i+1行以后各行进行变换fork=i+1tom-1doa[

7、k,v]=a[k,v]/f[v]forw=v+1ton-1doa[k,w]=a[k,w]–f[w]*a[k,v]endforendforif(my_rank>j)then//编号大于j的处理器对其所有行变换fork=0tom-1doa[k,v]=a[k,v]/f[v]forw=v+1ton-1doa[k,w]=a[k,w]–f[w]*a[k,v]endforendforendifendforendforend大体思路如同上面的伪代码给出,核心思想就是如果当前主行在第j号处理器,那么按照顺序划分的想法,编号小于j的处理器已经变换完了自己的各行,不需要做什么处理;编

8、号为j的处理器应用当前主

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

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

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