学生宿舍并行计算环境的搭建毕业论文完成版Word文档格式.doc
《学生宿舍并行计算环境的搭建毕业论文完成版Word文档格式.doc》由会员分享,可在线阅读,更多相关《学生宿舍并行计算环境的搭建毕业论文完成版Word文档格式.doc(25页珍藏版)》请在冰点文库上搜索。
![学生宿舍并行计算环境的搭建毕业论文完成版Word文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/3c1bb2d1-6c54-4151-87db-49263d36dc2e/3c1bb2d1-6c54-4151-87db-49263d36dc2e1.gif)
关键词:
MPI并行计算坏境MPICH2计算机群
ParallelComputinginDormitorybyPas
Student:
ShenHaoAdvisor:
ZhuLunwu
SchoolofscienceZhejiangUniversityofScienceandTechnology
Abstract
TheMPIisanimportanttechnicalofparallelcomputationaspectswhichiswidelyusedsignalprocessinginmanyfieldsofscienceandtechnology.Thispaper,fromthetwoaspectsofhardwareandsoftwarecouldbeusedforaparallelcomputationofsmallfleetinconstructionandoperation,andbypossibletheefficiencyofparallelcomputationofseveralaspectsoftheexperimentaltoanalysisandcomparison.Theresearchofthespecificsteps:
Firstly,BrieflydescribesthebasicconceptofMPIandparallelcomputation,Then,statusofdevelopmentofMPIandMPICH2softwarearesimplyintroduced;
FocusaftertheMPIparallelcomputingenvironment'
sconstructingandcompilesrunningofMPIProgramaredescribed.FinallybytheMPIprogramrunninggetdataandrelatedinformation,toprovethevalueoftheparallelcomputingenvironment.
Keyword:
MPIparallelcomputationenvironmentMPICH2Computercluster
目录
中文摘要 i
英文摘要 ii
目录 iii
第一章绪论 1
1.1研究动机与目的 1
1.2研究背景 1
1.3研究方法与系统描述 2
第二章并行计算与MPI 3
2.1并行计算与MPI的基本概念 3
2.2MPICH2软件简介 3
第三章并行计算环境的构建 5
3.1计算机群创建 5
3.2MPICH2及相关软件的安装配置 7
第四章MPI程序的编译和调试 9
4.1编译环境简介 9
4.2程序调试 9
第五章并行程序的运行及性能分析 12
5.1并行程序的运行 12
5.2网卡性能对计算加速的影响 14
5.3进程数量对计算加速的影响 15
5.4核心数量和节点数量 16
第六章总结 18
致谢 19
参考文献 20
附录 21
ii
第一章绪论
1.1研究动机与目的
21世纪是一个人类文明飞速发展的世纪,本世纪应用最多的当属计算机。
计算速率快计算精确度高是它的主要特性。
从最初的冯·
诺依曼计算机到现在的超级计算机,虽然计算机发展的速度飞快,但对于越来越大的信息处理需求,单机的性能已经远远不能满足我们这个信息时代。
软件是计算机处理数据实现的主要途径。
传统意义上,一般的软件设计都是串行式计算的,即软件在一台只有一个CPU的计算机上运行,要处理的问题则会被分解成离散的指令序列,指令被一条接一条的执行,在任一时刻CPU上最多只有一条指令在运行。
这样的执行效率很大程度上势必取决于该计算机CPU的性能,虽然计算机更新速度很快,但事实上信息的增加速率远远超过了计算机性能的提高速率,为了更快更好的处理这些信息,便出现了并行计算理论。
并行计算其实就像一种团队协作模式。
在竞争激烈的当今社会,在很多情况下,无论个人能力多么的强悍,如果只靠自己的力量是完全不可能实现的;
只有形成一个有组织有原则更有一志目标的团队,才能出色的完成任务,解决问题。
虽然计算机的单机能力现今已非常强大,但是为了能解决更加复杂更加困难的问题,更加效率更加出色的完成任务,就必须像人类一样组成一个自己的团队,这里称计算机团队为计算机群,团队协作模式称为并行计算模式,团队的这样一个环境就是计算机的并行计算环境。
我们身处的世界是并行的,很多事物都是并行发生的,例如:
地球的绕太阳公转和水星金星等绕太阳公转;
天气的变化和海平面的变化;
人类的各种生产发展;
人体各种系统的运行等等。
并行计算是由串行计算发展而来的,串行计算的模式可以形容为多米诺骨牌模式,而并行计算则是按照一定规则下的流水线模式,同一时间执行着不同的任务。
这种模式其实也是团队合作模式的另一种体现。
因此,对于许多复杂的相关联的同时发生的事件,在并行计算环境下便能更快更好地处理。
1.2研究背景
并行计算是近30年来迅速发展起来的一门交叉学科,涵盖的内容非常广泛。
并行计算包括很多方面,如并行机体系结构、编译系统、并行算法、并行编程、并行软件技术、并行性能优化与评价、并行应用等。
因此,对于并行计算的研究具有很大的意义。
另外从交叉学科的角度看,并行计算又是连接并行机系统和实际应用问题之间的桥梁。
它辅助科学、工程及商业应用的领域专家,为在并行机上求解领域问题提供具有共性的关键支撑。
[1]
并行计算具有巨大的数值计算和数据处理能力,已被广泛地应用于国民经济、国防建设和科技发展中具有深远影响的重大项目中,如石油勘探、地震预测和预报、气候模拟和大范围天气预报、新型武器设计、核武器系统的研究模拟、航空航天飞行器、卫星图像处理、天体和地球科学、实时电影动画系统及虚拟现实系统等等。
随着并行计算在科学研究和实际应用中发挥越来越大的作用,人们对计算已经产生了依赖,也逐渐将数值模拟作为许多决策的依据。
现在人们已经习惯将计算作为科学研究的第三种手段,并列于传统的科学研究的理论方法和实验方法。
[2]
并行计算机随着微处理芯片的发展,已经进入了一个新时代。
目前并行计算机的性能已经达到百万亿次,千万亿次的并行计算机正在规划之中。
[3]
近年我国并行计算机的研制已经走在了世界前列,现正研制生产百万亿次的巨型计算机系统。
2003年由联想公司开发的深腾6800超级计算机在2003年11月世界超级计算机Top500排名中位列第14名,2004年由曙光公司生产的曙光4000A超级计算机在2004年6月的世界Top500排名中位列第10名。
这也是我国公开发布的高性能计算机在世界Top500排名中首次进入前10名,标志着我国在并行计算机系统的研制和生产中已经赶上了国际先进水平。
高性能计算机更为提高我国的科学研究水平奠定了物质基础。
1.3研究方法与系统描述
本文主要比较分析的是并行计算环境与非并行计算环境下数据处理的速度,以此来说明并行计算环境的优越性。
主要应用软件是MPICH2和VS2005,由于实际条件所限,本次建立的机群计算机数只有3台,研究方法具体分为以下几个步骤:
首先是计算机群的建立,其次是对各计算机的完成相关设置,然后完成MPICH2及相关软件的安装配置构建并行计算环境,再用编译软件VS2005将对应程序进行MPI编译成可执行应用程序,最后在并行计算环境与非并行计算环境(即单机环境)下,将编译完成的应用程序在MPICH2软件平台上运行,并根据运行的数据及计算机相关信息分析总结,最后得出相关结论。
第二章并行计算与MPI
2.1并行计算与MPI的基本概念
什么是并行计算?
并行计算(ParallelComputing)是指同时使用多种计算资源解决计算问题的过程。
[4]为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者两者结合使用。
并行计算的主要目的是快速解决大型且复杂的计算问题。
此外还包括:
利用非本地资源,节约成本―使用多个“廉价”计算资源取代大型计算机,同时克服单个计算机上存在的存储器限制。
[5]
什么是MPI?
对MPI的定义一般包含以下三个方面它们限定了MPI的内涵和外延。
① MPI首先是一个库而不是一门语言,许多人可能会认为MPI就是一种并行语言这其实是不准确的。
但是按照并行语言的分类,可以把FORTRAN+MPI或C+MPI,看作是一种在原来串行语言基础之上扩展后得到的并行语言。
MPI库可以被FORTRAN77/C/Fortran90/C++调用,从语法上说,它遵守所有对库函数/过程的调用规则,和一般的函数/过程并没有什么区别。
② MPI也是一种标准或规范的代表,而不特指某一个对它的具体实现。
迄今为止,几乎所有的并行计算机制造商都提供了对MPI的支持,使人们可以在网上免费得到MPI在不同并行计算机上的实现,一个正确的MPI程序,可以不加修改地在所有的并行机上运行。
③ MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。
MPI虽然很庞大,但是它的最终目的是服务于进程间通信这一目标的。
在MPI上很容易移植其它的并行代码,而且编程者不需要去努力掌握许多其它的全新概念,就可以学习编写MPI程序。
当然,这并不意味着MPI已经十分完美,必须承认MPI自身还存在着一些缺点,在本书的后续章节将对它进行讨论。
[6]
消息传递方式是广泛应用于多类并行机的一种模式,特别是那些分布存储并行机,尽管在具体的实现上有许多不同,但通过消息完成进程通信的基本概念是容易理解的。
[7]十多年来,这种模式在重要的计算应用中已取得了实质进步。
有效和可移植地实现一个消息传递系统是可行的,因此通过定义核心库程序的语法、语义,这将在大范围计算机上可有效实现,将有益于广大用户,这是MPI产生的重要原因。
2.2MPICH2软件简介
MPICH是MPI标准的一个完全实现,也是应用范围最广的一种并行及分布式环境,MPICH除包含MPI函数库之外,还包含了一套程序设计以及运行环境。
[8]
MPICH2是MPI(MessagePassingInterface)的一个全新实现,支持最新的MPI-2接口标准,是用于与并行计算的工具,在程序设计语言上支持C/C++和Fortran。
在本文中将介绍如何应用MPICH2的Windows版本,以及如何搭建一个基于Windows+VS2005的并行程序运行环境,并在此环境中编译运行一个C+MPI程序。
[9]
MPICH2的设计实现了加到MPI-2附件的全部(动态进程管理,片面操作,并行I/O及其他扩充),应用从MPICH1实现所获得的教训,使得MPICH2更加健壮、有效及便于使用。
[10]MPICH2的安装指南提供有关MPICH1与MPICH2的改变某些信息,配置与安装MPICH的过程。
MPICH2使用了一个标准的、可移植的叫做mpiexec的命令。
此外常用的还有wmpiregister和wmpiconfig命令。
第三章并行计算环境的创建
3.1计算机群创建
本次选用的为宿舍里的3台计算机,CPU都为双核,其中2台为笔记本,另一台为台式机。
创建计算机群的步骤如下:
① 在每台机上安装windowsxp系统,并且工作组都设成相同,以便创建局域网模式,联机运作,具体的安装步骤将不作介绍。
② 在每台计算机上创建一个相同用户名的计算机管理员账户,并且用户密码必须有且都相同,以便联机运行调动。
本次创建的用户名全部为sh,密码为123。
③ 对每台计算机关闭防火墙,这是为了建立局域网共享模式,防火墙会阻止这类操作的进行。
④ 将3台计算机用一个路由器连接起来组成局域网,此时任一计算机进入网上邻居计算机组都可看见本局域网中的所有成员机且点击任一计算机均可进入。
⑤ 以其中一台计算机为主机,是局域网在所有计算机IP地址获取方式改为自动获取。
在主机上路由器网络设置完成后,处于局域网中的所有计算机将可以连接互联网。
各机在网络连接的本地连接将表示已连接。
⑥ 设置共享资源,即在一台计算机上将想要共享的文件夹设为共享。
具体步骤如下:
右键点击要共享的文件,选择共享,按照共享安装向导安装,安装好后在共享属性里勾选在“网络上共享这个文件夹”和“允许网络用户更改我的文件”选项。
如图3-1所示:
图3-1设置共享资源
⑦ 将所需共享的资源拉入共享文件夹中。
在自己计算机中下载好所有需要的软件,详细有Visual.S.2005.简体中文版,dotnetfx,mpich2-1.3.2p1-win-ia32,vcredist_x86,将除VS2005外的上述软件安装包拉入设置的共享文件夹中。
注:
Visual.S.2005即前面介绍的VS2005的软件安装包;
dotnetfx应用程序为Microsoft.NETFramework2.0(简称framework2.0)的安装包。
framework2.0是Microsoft.NET程序的开发框架的运行库,也就是说如果你运行的程序是用.net开发的,就需要Framework作为底层运行环境,也是安装MPICH2所必须的;
mpich2-1.3.2p1-win-ia32为MPICH2的软件安装包,1.3.2p1为版本号,win-ia32表示是32位windows系统下;
vcredist_x86.exe是针对于不同CPU所出的优化补丁执行程序,是一种基于C++的软件需要的库文件,MPI程序在安装相应的vcredist文件环境下才能运行。
目前vcredist_x86.exe多用做于winxp等基于x86平台的系统补丁。
因此也不支持在VISTA系统下安装。
⑧ 测试局域网连通性,看每台计算机之间是否可以互访。
首先可在一台计算机的命令符中输入“ping对方IP地址”,IP地址可通过对桌面任务栏右下角本地连接图标右键进入状态》支持中获知。
例如本次3台机的IP分别为:
192.168.1.102192.168.1.103192.168.1.104。
可以在IP为102计算机中输入“ping192.168.1.103或192.168.1.104”按Enter键检查连通性,一般按以上步骤执行将会ping通,如图3-2。
图3-2ping命令行
测试时遇到的症状与对应解决方法如下:
症状1:
双机之间无法互Ping通
解决方法:
检查连接用的双绞线有无问题,防火墙是否都关闭,两台电脑的IP是否处在同一网段,还有子掩码是否相同,因为是路由器连接,所以这里只需自动获取就可满足此条件。
症状2:
有计算机不在计算机组中
解决方法:
检查计算机组名是否相同,可进入我的电脑》属性》计算机名中查看和更改计算机组名。
本次计算机组名统一为WORKGROUP,即是默认计算机组名。
症状3:
不能进入对方计算机,出现需要密码的提示框
需在对方计算机,开始菜单运行中输入secpol.msc启动“本地安全策略”,本地策略》用户权利分配,打开“拒绝从网络访问这台计算机”,删除guest用户,确认保存设置。
症状4:
当电脑与电脑间可以Ping通,但无法访问共享资源
在我的电脑》属性》管理中查看“本地共享”后会弹出“没有启动服务器服务”的错误对话框,则可在控制面板-管理工具-服务中启动Server服务。
并设置“启动类型”为“自动”。
以上4种是我在测试时遇到的情况,可能还有其他症状,将不在此作深入展开。
3.2MPICH2及相关软件的安装配置
在安装MPICH2软件前,必须先安装2个软件来创建MPI程序所需要的环境。
vcredist_x86.exe与Dotnetfx.exe软件安装包,安装路径就以默认路径,因为此两个软件所占存储空间不大。
然后在来安装mpich2-1.3.2p1-win-ia32.msi,否则会跳出需要安装vc++2005sp1与framework2.0的提示框,安装失败。
当安装完这两款软件后,就可以来安装mpich2-1.3.2p1-win-ia32.msi(即MPICH2软件安装包)。
这里同样选择默认路径(C:
\ProgramFiles\MPICH2)为安装路径,安装一路选默认即可安装完成。
注意该安装结束后,会在进程管理器中出现smpd.exe进程,表明安装成功。
在安装路径的bin文件夹下将会有wmpiregister.exe,wmpiconfig.exe,wmpiexec.exe等应用。
接下来设定工作路径,可在我的电脑》属性》高级》环境变量中的path属性最后加上MPI的工作路径,此处为C:
\ProgramFiles\MPICH2\bin,与前面的一个路径名要用“;
”隔开。
以上步骤要对计算机组中的每台计算机执行。
安装好MPICH2之后还必须对每台计算机进行注册和配置才能使用。
其中注册必须每台计算机都要进行,配置只要在主控的计算机执行就行了。
注册的目的是,将先前在每台计算机上申请的账号与密码注册到MPICH2中去,这样MPICH2才能在网络环境中访问每台主机。
注册方法:
运行“bin\wmpiregister.exe”或者从“开始->
程序->
MPICH2->
wmpiregister.exe”启动wmpiregister运行界面如图3-3所示,输入计算机的用户名和密码,按Register键写入即可,再按OK键保存关闭。
图3-3MPICH2注册
配置方法:
运行“bin\wmpiconfig.exe”或者从“开始->
Wmpiconfig.exe”启动wmpiconfig运行界面如图3-4所示。
在Domain下拉菜单中选择当前工作组(WORKGROUP)。
点击GetHosts,可以在下面看到工作组中所有计算机。
点击ScanHosts将搜索安装了MPICH2的主机。
安装成功的主机将用绿色显示其名称及版本,再点击ApplyAll对全部适用的计算机应用,再点OK键保存关闭。
没有安装的将以灰色显示。
图3-4MPICH2配置
下面就轮到VS2005软件的安装。
为方便使用,本次使用的版本为中文版。
安装可以按照安装向导默认安装即可。
第四章MPI程序的编译和调试
4.1编译环境简介
本次程序的编译将采用VS2005软件来作为编译环境。
VS2005全称MicrosoftVisualStudio2005TeamSystem,是Microsoft公司为了使Windows软件开发得以广泛应用,利用VisualStudio.NET,开发的轻松开发分布式应用程序的工具。
VisualStudio2005TeamSystem能解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。
VisualStudio2005是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。
VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。
另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。
VisualStudio提供了在设计、开发、调试和部署Web应用程序、XMLWebServices和传统的客户端应用程序时所需的工具。
在本文中,将只应用VisualC++开发工具编译所需程序。
4.2程序调试
在Windows平台下使用MicrosoftVisualStudio来编译MPI程序,详细说明如下。
首先,新建一个Win32控制台项目,具体步骤为文件》新建》项目》VisualC++》Win32中选择Win32控制台应用程序,在名称项中输入项目名,本项目名为“ParallelPI”,如图4-1所示;
按确定键后,根据向导,按默认选择就行。
图4-1创建项目
创建项目成功后讲源文件中ParallelPI.cpp中的内容全选清空,再将预先准备好的MPIC++程序源代码复制到上述清空文件中,按Ctrl+S键保存。
然后对项目目录进行配置,在项目》ParallelPI属性》配置属性》C/C++》常规中将包含目录添加为MPI所在的包含目录(即C:
\ProgramFiles\MPICH2\include),如图4-2所示,点击应用按钮。
图4-2设置包含目录
再在项目》ParallelPI属性》配置属性》链接器》常规中将库目录添加为MPI所在的库目录(即C:
\ProgramFiles\MPICH2\lib),如图4-3所示,点击应用按钮。
图4-3库文件目录设置
接着将项目》ParallelPI属性》配置属性》链接器》输入中附加依懒项添加为mpi.lib,如图4-4所示,点击应用按钮。
图4-