您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 并行计算-实验三-简单的MPI并行程序及性能分析
深圳大学实验报告课程名称:并行计算实验名称:简单的MPI并行程序及性能分析姓名:学号:班级:实验日期:2011年11月18日、12月2日一.实验目的1)用MPI实现简单的求π的程序2)对MPI并行程序进行简单的性能二.实验环境1)硬件环境:32核CPU、32G内存计算机;2)软件环境:Linux、Win2003、GCC、MPICH、VS2008;4)Windows登录方式:通过远程桌面连接192.168.150.197,用户名和初始密码都是自己的学号,在通过wmpiexec.exe运行MPI程序前,先需运行wmpiregister.exe注册自己的账号(即自己的学号)。三.实验内容1.用MPI实现求π的并行程序,写出代码。提示:π≈102)5.0(114ninin,计算执行时间用MPI_Wtime()函数。串行程序如下:#includestdio.h#includetime.hvoidmain(){clock_tt=0;inti,num_steps;scanf(%d,&num_steps);doublex,pi,sum=0,step=1.0/num_steps;t-=clock();for(i=0;inum_steps;i++){x=(i+0.5)*step;sum+=4.0/(1.0+x*x);}pi=step*sum;t+=clock();printf(PIis%f\nexecutiontimeis%f\n,pi,t/1000.0);}答:在windows下使用MicrosofeVisualStudio编程,根据串行程序更改的并行程序,源代码如下:#includempi.h#includestdio.h#includetime.hvoidmain(intargc,char**argv){inti,rank,size,n=1000000000;doublex,pi,sum=0,step=1.0/n;clock_tt=0;MPI_Init(&argc,&argv);MPI_Comm_rank(MPI_COMM_WORLD,&rank);MPI_Comm_size(MPI_COMM_WORLD,&size);t-=clock();for(i=rank;in;i=i+size){x=(i+0.5)*step;sum+=4/(1+x*x);}MPI_Reduce(&sum,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);if(rank==0){pi=step*pi;t+=clock();printf(PIis%.10f,runtimeis%10f\n,pi,t/1000.0);}MPI_Finalize();}2.分析上述程序的执行时间、加速比和效率:num_steps固定为109,节点数分别取1、2、4、8、16和32时,为减少误差,每项实验进行5次,取平均值作为实验结果。答:串行执行时程序的执行时间为:T=7.391s加速比=顺序执行时间/并行执行时间效率=加速比/节点数表1不同节点数下程序的执行时间(秒)节点数实验结果12481632第1次7.393.7031.8440.9220.4530.469第2次7.4063.6871.8440.9220.4530.469第3次7.393.6871.8440.9370.4690.485第4次7.393.7031.8440.9220.4680.469第5次7.393.7031.8440.9220.4530.469平均值7.39323.69661.8440.9250.45920.4722图1不同节点数下程序的执行时间图2不同节点数下程序的加速比图3不同节点数下程序的效率在问题规模不变的情况下,更改节点数后进行以下分析:执行时间的分析:随着节点数的增加,程序的执行时间减少,大概可以从结果中得出,随着节点书的增加一倍,执行时间减少一半,但是当节点数太多的时候,接近处理器个数,执行时间不会减少,因为需要等待所有处理器的完成,而所有的处理器不一定当前都空闲,所以需要等待时间。加速比的分析:随着节点数的增加,程序的加速比增加,大概可以从结果中得出,随着节点书的增加一倍,加速相应的增加接近一倍。效率的分析:随着节点数的增加,不算增加到接近处理器个数,程序的效率没有明显变化,因为不同节点的计算都是独立的,最后只是通过消息的方式进行传递数值,代价较小,所以效率变化小。3.分析上述程序的问题规模与效率的关系:固定节点数为4,让num_steps从105到1010之间变化。(为了减少时间,每项实验可只执行1次)答:由于在并行执行时,问题规模为105和106的运行时间太接近于0,这样根本测不出来,故以下分析只分析107到1010。图4不同问题规模下程序的效率问题规模与效率的关系分析:从图中可以看出,随着问题规模的增加,效率逐渐增加,因为每个处理器的工作时间逐渐增加,用于通信的时间不变,所以效率会有所增加。
本文标题:并行计算-实验三-简单的MPI并行程序及性能分析
链接地址:https://www.777doc.com/doc-7331193 .html