多核程序设计实验指导书之四_第1页
多核程序设计实验指导书之四_第2页
多核程序设计实验指导书之四_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

《多核程序设计》实验指4.1构建基于WINDOWSMPI实验目掌握面向InMPILibrary建立Windows并行集群环境的方法掌握VisualStudio*NET*集成开发环境开发MPI实验要2、掌握VisualStudio*NET*集成开发环境的使用;实验内In(R)MPILibraryforWindows的安装与配置(安装已经完成,学生在安装路径(默认状态是:C:\ProgramFiles\In\ICT\3.1\mpi\3.1\ia32)下产生3个子文件夹,分别是include,bin和lib。include和lib包含了编译应用程序必要的头文件和库,而bin则包含了进程管理器smpd.exe和MPI作业启动程序mpiexec.exe。实现In(R)MPI的dlls被拷贝到了windows/system32中了。参装In(R)MPI包。MPI安装软件包运行成功后,在安装中会自带一个可视化的配置工具wmpiconfigIn(RMPI的电脑都在一个组(workgroup->控制面板->用户帐户)相同的用户名和。本实验使用用户名开始->所有程序->In(R)SoftwareDevelopmentTools->In(R)MPILibrary3.1->In(R)MPILibrarybuildenvironmentforIA-32->wmpiregister,出和的信息注入系统了,然后点击OK按钮退出。图1wmpiregister界所有程序->In(R)SoftwareDevelopmentTools->In(R)MPILibrary3.1->In(R)MPILibrarybuildenvironmentforIA-32->wmpiconfig(如图2所示选择workgroup在右侧的Settings选项中将hosts选项值修改为集群所有主机名。然后单击Apply按钮便把主机列表信息加入到了系统表中了。这样,以后运行并行程图2wmpiconfig在VisualS2003平台中配置MPI运行环境步骤如下项,在弹出的框中选择项目-〉VC++-〉包含文件,将安装下的include文件夹所在添加进去(如图3所示。同理将lib文件夹添加到图3在.net平台中配置MPI器→命令行→附加选项中填入impid.libimpicxxd.lib(如图4所示。这样程序在VisualS2003中使用In(R)MPI编译了。图4在.net平台中配置MPI开始->所有程序→In (R)SoftwareDevelopmentTools→In(R)MPILibrary3.1→In(R)MPILibrarybuildenvironmentforIA-32→wmpiexec,使用下图中的In(R)MPI提供一个命令行工具程序mpiexec.exe,该程序帮助用户以非常:格式1:mpiexecnofprocesses格式2:mpiexechost<hostname格式3:mpiexecmachinefile<machinefile>用-n设置本地机上的进程数,myprog.exe指可执行文件(可包含路径,若程序还有别令行参数,根据需要添加到该命令行后面。用-host设置程序执行的主机,如以下命令将会运行可执行文件a.exelab01上:mpiexechostlab01一个machinefile是一个包含集群中所有主机名,各主机运行进程数等信息加一个进程,或者直接按格式:<hostname>:<numberofprocesses>.描述每个主 mpiexec-hosts2LAB012LAB023LAB02mpiexec–n<#ofprocesses>EnvironmentforIn(R)ClusterToolkit3.1运行。4.2NMPI实验目实验要2、掌握VisualStudio*NET*集成开发环境的使用;实验原FGmarFm(vt1vtF vt1vtm其中vt+1为物体在时刻t+1的速度,vt为物体在时刻t的速度。如果物体以速v移动了△txt1

Nfor(t=0;t<tmax;t++){ /*foreachtimeperiod*/for(i=0;i<n;i++){ /*foreachbody*/F=Force_routine(i); /*computeforceonithbody*/v[i]new=v[i]+F*dt/m; /*computenewvelocityand*/x[i]new=x[i]+v[i]new*dt; /*newposition*/}for(i=0;i<n;i++) /*foreachx[i]=x[i]new; /*updatevelocityandposition*/v[i]=v[i]new;}}外层的forn置。内层的两个for循环计算每一个物体所受到的力及其新的位置和速度。内层第一个for循环内的函数For_routin(i)计算其它所有物体作用于第i个物体的引力之和,它的时间复杂性是(n)。因此在这个算法中n个物体更新一次时间复杂性是(n2N2、……m-1,每个进程分配的物体数是n0、n1、n2、……n(m-1),其中n0+n1+n2n(m-1n。每个进程主要有两个数组localparticles、allparticles、sendbuf、for(每一个时间步{计算所有物体对分配给本进程的物体的作用力并据此更新localparticlesfor(i=0;i<m-1;i++)//对每个进程{sendsendbuftorecvrecvbuffrom}}算法中外层for循环计算每一个时间步,在每个时间步内所有参与的进程并nfor的循内层fr循环使得每个进程都获得了所有物体的更新后的信息,实现了进程之间的合作,为下一次迭代做好准备;最后通过显示

温馨提示

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

评论

0/150

提交评论