学生学号0121214410203实验课成绩学生实验报告书实验课程名称并行计算开课学院理学院指导教师姓名余新华学生姓名罗云学生专业班级信计1202班2014——2015学年第2学期班级信计1202日期2014.06.09成绩评定姓名罗云实验室数学207老师签名学号0121214410203实验名称Linux的安装与使用入门所用软件VMwareworkstation实验目的及内容1、在虚拟机上实践Linux系统的安装2、掌握linux命令的使用入门实验原理步骤一、linux系统的安装1、首先,下载一份CentOS6.5的系统镜像文件,装进虚拟机的虚拟光驱。2、开机瞬间按F2,设定BIOS从CD-ROM启动系统。保存设置后重启,则开机自动加载镜像。3、进入CentOS系统引导设置界面,语言、时区、网卡等使用默认选项。调整分区时为linux系统分配/boot、/root、/home和swap块,/boot为引导区分配200MB左右即可,其他区块大小应根据需要事先规划好,如果分配的不合理也可以进入系统后使用fdisk命令进行调整。系统安装形式选择BasicServer,以服务器的形式安装即可。4、等待系统安装成功重启后显示如下画面,即表示安装成功。二、Linux命令使用入门1、IP地址查看命令ifconfig2、目录更改命令cd、目录查看命令ls3、普通用户与超级用户切换命令su4、文件查看命令cat5、文件编辑命令vi6、远程主机登陆命令ssh实验结果及分析1、CentOS属于RedHat系列的系统,本次实验在虚拟机上成功安装该linux系统。2、掌握了Linux基本命令操作,能查看Linux系统IP地址、目录、文件内容,能实现ssh无密码远程登陆。更多的命令操作在后续实验中体现。注:不交此报告者,本次实验为“不合格”。班级信计1202日期2014.06.09成绩评定姓名罗云实验室数学207老师签名学号0121214410203实验名称MPI安装、程序编译、调试与运行所用软件VMwareworkstation实验目的及内容1、安装MPI2、利用MPI编译、运行程序实验原理步骤一、MPI的安装1、下载OpenMPI1.6.5的压缩包,制作成镜像挂载到虚拟机的虚拟光驱,然后使用mount命令挂载到linux系统上2、使用tar命令解压缩OpenMPI压缩包3、使用cd命令进入openmpi-1.6.5的目录后,执行如下的命令安装openmpi4、安装完成后,创建环境变量文件二、利用MPI编译、运行程序1、首先编写一个求1到1000累加的且实现均衡负载并行程序sumtest.c。代码如下:#includestdio.h#includempi.hintmain(intargc,char*argv[]){inti,myid,sum,mysum,N,namelen;doublestartwtime,endwtime;charprocessor_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&N);MPI_Comm_rank(MPI_COMM_WORLD,&myid);MPI_Get_processor_name(processor_name,&namelen);fprintf(stderr,Process%don%s\n,myid,processor_name);if(myid==0){startwtime=MPI_Wtime();}mysum=0;for(i=myid+1;i=1000;i+=N){mysum+=i;}MPI_Reduce(&mysum,&sum,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD);if(myid==0){endwtime=MPI_Wtime();printf(sum=%d\n,sum);printf(clocktime=%f\n,endwtime-startwtime);}MPI_Finalize();return0;}2、MPI编译命令3、MPI运行命令及结果实验结果及分析1、openmpi安装需要gcc等先行文件,否则会安装失败;安装完成后需要环境变量文件的配置,使用source命令立即生效。2、mpi编译生成目标文件后,运行的指令使用mpirun而不是./sumtest,调用进程数可以任意指定。注:不交此报告者,本次实验为“不合格”。班级信计1202日期2014.06.09成绩评定姓名罗云实验室数学207老师签名学号0121214410203实验名称梯形积分并行计算所用软件VMwareworkstation实验目的及内容1、编写一个利用梯形积分公式求解π值的并行程序2、使用mpi并行计算实验原理步骤1、包含函数原型声明的头文件integration.h,代码:doubleintegration(doublea,doublefa,doubleb,doublefb,doubleeps,double(*F)(doublex));2、梯形积分公式递归计算积分值的程序integration.c,代码:#includestdio.h#includestdlib.h#includemath.h#includeintegration.h#defineMAX_DEPTH1024#defineMACHINE_PREC1e-15doubleintegration(doublea,doublefa,doubleb,doublefb,doubleeps,double(*F)(doublex)){staticintdepth=0;doublefc,v0,v,h,xc;++depth;v=0.0;if(a!=b){xc=(a+b)*0.5;h=b-a;v=v0=h*(fa+fb)*0.5;if(xc!=a&&xc!=b){doubleerr;fc=(*F)(xc);v=(v0+fc*h)*0.5;err=fabs(v-v0);if(err=3.0*h*eps&&fabs(h)=(1.0+fabs(xc))*MACHINE_PREC){v=integration(a,fa,xc,fc,eps,F)+integration(xc,fc,b,fb,eps,F);}}}--depth;returnv;}3、测试integration.c的主程序main-mpi1.c,代码:#includestdio.h#includestdlib.h#includemath.h#includefunction.h#includeintegration.h#includempi.hintmain(intargc,char**argv){intnprocs,myrank;doublea=0.0,b=1.0;doubleeps,res0,res,a0,b0,cpu0,cpu1,wall0,wall1,wall2;MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&nprocs);MPI_Comm_rank(MPI_COMM_WORLD,&myrank);if(myrank==0){if(argc!=2){fprintf(stderr,Usage:%sepsilon\n,argv[0]);fprintf(stderr,Example:%s1e-4\n,argv[0]);MPI_Abort(MPI_COMM_WORLD,1);return1;}eps=atof(argv[1]);}MPI_Bcast(&eps,1,MPI_DOUBLE,0,MPI_COMM_WORLD);a0=a+(myrank+0)*(b-a)/nprocs;b0=a+(myrank+1)*(b-a)/nprocs;gettime(&cpu0,&wall0);res0=integration(a0,F(a0),b0,F(b0),eps/(b-a),F);gettime(&cpu1,&wall1);printf(\tRank=%d,#ofevaluations=%u,cputime=%0.4lf,wtime=%0.4lf\n,myrank,evaluation_count,cpu1-cpu0,wall1-wall0);MPI_Reduce(&res0,&res,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);gettime(NULL,&wall2);if(myrank==0){printf(result=%0.16lf,error=%0.4le,wtime=%0.4lf\n,res,res-RESULT,wall2-wall0);}MPI_Finalize();return0;}4、mpi编译命令5、mpi运行命令实验结果及分析1、此并行程序是在串行主程序的基础上修改得来,实质是把积分区间划分成P个子区间,以供P个进程独立调用integration函数计算。2、每个进程计算的函数值数目是不一致的,说明各个进程上的计算负载是不均衡的。注:不交此报告者,本次实验为“不合格”。