西南科技大学科学计算导论实验报告1_第1页
西南科技大学科学计算导论实验报告1_第2页
西南科技大学科学计算导论实验报告1_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科学计算导论科学计算导论实验报告学号姓名班级实验名称并行计算MPI报告时间2020.11.28成绩一、实验过程1.1实验基本内容与要求介绍并行计算消息接口MPI的定义,应用背景与基本概念。在windows系统上安装MPI。运行基于MPI的两个程序。1.2实验过程MPI安装及环境配置:官网下载mpich2-1.4.1p1-win-x86-64.msi,运行。按教程操作即可。在环境变量里配置path,指向安装目录下的bin文件。打开bin目录下的wmpiregister.exe”文件,如图,输入电脑用户名及密码。以管理员身份运行cmd,输入命令“smpd-install-phrase…”,运行后“MPICH2ProcessManager,ArgonneNationalLabinstalled.” 即成功。打开属性页面,点击C/C++中的附加包含目录绑定到安装目录下的include文件。打开链接器的附加库目录,绑定安装目录下的lib文件。然后展开“链接器”,点击“输入”,在右侧第一项“附加依赖项”,前面加上mpi.lib;完成。程序运行:运行程序,生成exe文件。然后在wmpiexec.exe中运行。二、实验结果在cmd终端窗口使用命令mpiexec-n启动线程‘Helloword’程序:计时函数的使用:三、实验分析MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,它们指明其如何在各种实现中发挥其特性。1.Mpi主要应用场景:应用也主要是高性能计算,超级计算机领域。使用高性能计算和超级计算机的领域常见的有气象,金融,生物,科研等等.2.Mpi优点:无论硬件是否共享内存空间,都可以使用。(但是线程间不共享内存空间)

每个线程有自己的内存和变量,这样不用担心冲突问题.3.普通C/C++程序与MPI程序的区别: MPI程序是基于消息传递的并行程序。(消息传递指的是并行运行的各个进程具有自己独立的堆栈和代码段,作为互不相关的多个程序独立运行,进程之间的信息交互全然通过显示地调用通信函数来完毕。) 普通C/C++程序:C语言是面向过程,C++是面向对象,二者都是串行单独运行附录:(实现代码粘贴于此处,含不少于总代码量1/2的注释内容)开发语言/版本C++编译环境/编译器Vs2015运行环境(操作系统,版本,32/64位)Windows10,MPICH2,64位‘Helloword’程序:#include<stdio.h>#include<mpi.h>intmain(intargc,char*argv[]){intmyrank,nprocsMPI_Init(&argc,&argv);;//初始化MPI环境MPI_Comm_size(MPI_COMM_WORLD,&nprocs);//获取当前进程在通MPI_COMM_WORLD中的进程号MPI_Comm_rank(MPI_COMM_WORLD,&myrank);printf("Hellow,world!%dthoftotalTaskNum=%d\n",myrank,nprocs);MPI_Finalize();return0;}计时函数的使用:#include"mpi.h"#include<stdio.h>#include<windows.h>intmain(void){intmyrank,nprocs,name_len,flag;doublestart_time,end_time;charhost_name[20];MPI_Initialized(&flag);//判断MPI_Init是否已执行fprintf(stderr,"flag:%d/n",flag);MPI_Init(0,0);//初始化mpi执行环境MPI_Comm_rank(MPI_COMM_WORLD,&myrank);//标识进程组,返回调用进程的标识号MPI_Comm_size(MPI_COMM_WORLD,&nprocs);//标识进程当中有多少个进程组MPI_Get_processor_name(host_name,&name_len);//返回进程所在的处理器名称if(myrank==0){fprintf(stderr,"PrecisionofMPI_WTIME():%f.\n",MPI_Wtick());//MPI_Wtick则返回MPI_Wtime结果的精度fprintf(stderr,"HostName:%s\n",host_name);}start_time=MPI_Wtime();Sleep(myrank*3);end_time=MPI_Wtime();//MPI_Wtime返回一个双精度数消耗时间秒数fp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论