下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Windows环境下基于Eclipse的MPI编程环境配置摘要:对当前并行程序开发工具存在的问题进行了分析。结合并行开发环境的迫切需求,给出了一种windows环境下,以开源项目Eclipse作为开发平台,以MinGW作为GUN的C/C+编译器的MPI并行程序开发平台的搭建方法。并给出了该环境下的开发实例和测试。关键词:Eclipse;并行开发环境;MinGW;MPIConfiguration of Develop Platform in Windows based on EclipseAbstract: Problems of parallel develop platform are fi
2、rstly analyzed. With the urgent requirement of parallel develop platform, the configuration of MPI parallel develop platform based on open resource project Eclipse in windows is given, and the platform has a C/C+ complier based on MinGW. At last, a develop example and test in this platform are also
3、presented. Key words: Eclipse; Parallel Develop platform; MinGW; MPI1 引言当前适用于各种平台、环境的并行算法得到了蓬勃的发展,针对并行计算硬件体系结构及并行应用自身特点出现了大量功能和操作风格迥异的并行开发工具环境,从基于命令行和文字编辑器的简单原始开发工具到以可视化为基础的集成化开发环境(IDE)。这些工具良莠不齐,并且有着各自不同的适用场合,使并行程序员必须随着需要解决的问题和最终运行环境的变化而不得不使用各种不同的开发工具,由此造成高性能应用软件开发高投入低产出的尴尬局面。开源项目被认为是解决并行开发工具多样性的有效途
4、径之一。尤其是开源的框架式平台Eclipse的出现和成熟,它所具备的开源特性和跨平台特点具有集成并行软件开发工具的天然优势。本文给出了windows环境下,使用开源开发工具Eclipse,以MinGW作为C,C+编译器,以gdb作为调试器,结合MPICH的一个并行程序开发环境的配置思想和方法,该思想可以移植到Linux等其它平台上。采用此开发平台可以方便的在windows下开发调试MPI程序,而方便的移植到Linux上运行。2 相关工具及其准备2.1 Eclipse框架2001年11月,IBM向开源社区捐献了Eclipse代码,自此Eclipse在开发者社区得到飞速发展。Eclipse是一种基
5、于Java的可扩展开源开发平台。就其自身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的Java开发工具(Java Development Tools,JDT)插件集。但Eclipse的目标却不仅限于此。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C+和COBOL等编程语言的插件已经可用。Eclipse框
6、架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。 Eclipse平台具有一组功能强大的插件(如图1),这些插件可支持多种项目,比如JDT和PDE1。帮助更新文本编辑IDE个性化IDE文本比较调试查找团队/CVS一般性工作台资源运行时库JFaceSWTOSGi图1 Eclipse平台体系结构简化图图中深灰色的部分代表的是Eclipse的富客户机平台(Rich Client Platform,RCP)的核心组件。可以将RCP简单地视为Eclipse的一组插件,人们可用这些插件来开发应用程序。图中白色所标示的部分代表的是可包含到基于RCP的应用程序中的可选(但建议包含)部件。
7、而淡灰色部分所示的部件则完全可选。Eclipse平台为工具提供者提供一种机制,使得各种工具能够无缝集成。这些机制通过PAI接口、类和方法来体现。Eclipse平台负责处理基本环境的后台工作,并提供标准的用户导航模型。2.2 CDT插件C和C+语言都是世界上最流行且使用最普遍的编程语言之一,也是MPI的宿主语言之一。要使用C或者C+进行MPI并行程序设计,首先要求Eclipse平台提供对C/C+开发的支持。因为Eclipse平台只是用于开发者工具的一个框架,它不直接支持C/C+;它使用外部插件来提供支持。CDT项目致力于为Eclipse平台提供功能完全的C/C+集成开发环境。虽然该项目的重点是L
8、inux,但它在可使用GNU 开发者工具的所有环境(包括 Win32(Win 95/98/Me/NT/2000 /XP)、QNX Neutrino 和 Solaris 平台)中都能工作。CDT是完全用Java实现的开放源码项目,它作为Eclipse SDK平台的一组插件。这些插件将C/C+透视图添加到Eclipse工作台(Workbench)中,使得Eclipse可以用许多视图和向导以及高级编辑和调试支持来支持C/C+开发。2.3 MinGWMinGW,即Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用GCC(
9、GNU Compiler C)产生Windows32程序。在基本层,MinGW是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时库(MSVCRT.DLL),该库在所有的Windows NT操作系统上有效,在所有的Windows 95发行版以上的操作系统有效,使用基本运行时,可以使用GCC写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的C运行时扩展。该功能是Windows32 API不具备的。下一个组成部分是w32 api包,它是一组可以使用Windows32 API的包含文件和端口库。与基本运行时相结合,就可以有充分的权利既使用CRT(C Runti
10、me)又使用Windows32 API功能。 MinGW为那些不喜欢工作在Linux(FreeBSD)操作系统而留在Windows的人提供一套符合GNU的工作环境。2.4 MPI近年来,消息传递接口MPI(Messaging Passing Interface)以其强大的功能、完备的消息传递API和跨平台的移植特性,综合了各种消息传递通信库行之有效的标准,已经成为基于消息传递(MP)机制的并行编程领域事实上的标准。MPI的实现包括MPICH、LAM、IBM MPL等多个版本,最常用和稳定的是MPICH2。MPICH含三层结构,最上层是MPI的API,基本是点到点通信,和在点到点通信基
11、础上构造的集群通信(Collective Communication);中间层是ADI层(Abstract Device Interface),其中Device可以简单地理解为某一种底层通信库,ADI就是对各种不同的底层通信库的不同接口的统一标准;底层是具体的底层通信库,例如工作站机群上的p4通信库等。MPI主要特点是通信原语处于较低的抽象级别,可以对并行编程的实施细节进行显式控制以达到最佳的性能要求。从另一角度看为维护性能和功能的完整性,MPI函数繁多到版本2.0己多达200多个函数,给程序员编程带来很大困难,甚至开发人员都难以维护其标准,致使程序开发过程过度复杂化。那么也就亟待有一个方便有
12、效的MPI程序开发、调试与运行环境。3 windows环境下基于Eclipse的MPI编程环境配置3.1 软件及插件收集本文使用的各种工具与插件版本如下(其它版本也可以,但是要注意查看兼容性,下载eclipse和插件的时候可以先查看readme.txt文件上的说明):1. JDK:jdk-1_5_0_07稳定版,1.5以上版本应该也可以,但是注意一定要使用稳定版,如果是版,在使用CDT插件的时候可能会出现问题。2. Eclipse:eclipse-SDK-3.2.1-win32。3. CDT:org.eclipse.cdt.sdk-3.1.2-win32.x86。4. MPICH:mpich2
13、-1.0.5p2-win32-ia325. MinGW:MinGW-5.1.36. gdb:gdb-5.2.1-17. Astyle:astyle_1.203.2 详细配置虽然MPICH同时有Linux和windows版,但真正在并行程序的测试和运行时主要还是在Linux环境下,而对于高性能计算的科研和应用人员来说,还是比较习惯在windows环境下做并行程序的开发和调试。本文给出在windows环境下使用目前主流的开源项目Eclipse作为开发工具,使用MinGW模拟Linux环境的C/C+编译器的MPICH并行程序编程环境的一种配置方案。该环境下可以方便的在windows下开发调试MPI程
14、序,调试正确以后可以直接移植到Linux环境运行,项目、程序都不需要做任何修改。配置步骤如下:1. 下载安装JDK。假设安装目录为:D:jdk。2. 安装Eclipse。Eclipse直接解压缩即可使用,假设解压目录为:D:eclipse。3. 安装MPICH。假设安装目录为:D:mpich。4. 安装CDT。采用连接文件法安装CDT插件:l 将org.eclipse.cdt.sdk-3.1.2-win32.x86解压,假设放至D:eclipsemyplugins目录下。(目录自建)l 在Eclipse主目录即d:eclipse下建立一个新目录links,在links目录下建立一个文件cdt.
15、link。l cdt.link内容为:path=D:eclipsemypluginscdt.sdk-3. 1.2-win32.x86即CDT插件的解压目录。l 新建Eclipse启动的快捷方式,并加上启动参数clean。clean启动参数要求Eclipse刷新所有插件。l 其它Eclipse插件安装也可仿照该法,可以方便安装和卸载。5. 安装MinGW和gdb。为了方便MPI程序移植至Linux平台,采用MinGW作为编译器,MinGW-5.0.2.exe很小,启动这个程序会到网络上下载你要安装的程序,这里只需要在安装的过程中选择g+和make文件下载安装就可以了,但是调试用的gdb不在里面,
16、需要单独下载,也就是gdb-5.2.1-1.exe。假设MinGW的安装路径是D:MinGW,再将gdb安装到MinGW安装的路径中。然后,将MinGW目录下的bin目录里的mingw32-make.exe改名为make.exe。修改windows环境变量PATH=D:MinGWbin; %PATH%。最后,启动eclipse,在窗口->首选项下展开C/C+->make-> new make project页面:l 将Make Builder选项卡下的Build command改为make。图2 添加环境路径l 添加MinGW相关环境路径。如图2所示。l 修改二进制解析器为P
17、E Windows Parser。6. 安装astyle。l 将astyle解压至相应目录,假设为D:eclipseothertools astyle_1.20AStyle。l 启动eclipse,启动运行菜单下的外部工具,进行相应设置,如图3所示。图3 Astyle配置图3.3MPICH程序配置与测试1. 新建managed maked C Project。项目名称假设为C。在项目属性中的C/C+ Buider选项卡下做如下修改:l 指定MPICH的include目录,如图4所示。图4 指定MPICH的include目录图l 指定MPICH的lib目录,并指明使用mpi库,如图5所示。图5
18、指定MPICH的lib目录和mpi库2. 在上述项目中新建一个源文件pi.c。并将D:mpichexamples目录下的icpi.c程序代码拷贝进pi.c,这是一个计算圆周率近似值的mpi程序3。保存程序,eclipse会自动编译连接程序,生成可执行程序c.exe。3. 在c.exe的右键菜单里选择Run as-Run local c/c+ application就能在console里看到运行的结果了。4. 可以直接设置断点,并在在c.exe的右键菜单里选择Debug as-Debug local c/c+ application就能进行单步调试mpi程序了。5. 当然也可以使用mpiexec直接模拟并行执行以上c.exe。如图6所示。图6 mpiexec并行运行MPI程序结果6. linux环境下可以参考以上配置进行完全相同的环境配置,由于开发环境eclipse的可移植性,这样,windows下的mpich项目就可以直接移植到linux环境,并编译运行。4 结论本文给出了windows环境下,使用开源项目Eclipse作为开发工具,以MinGW模拟GUN的C,C+编译器,结合MPICH的一个并行程序开发环境的配置思想和方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年销售合同经典版
- 2024年高校行政合同管理制度
- 2024年纹绣合作协议书范本
- 2024年西安客车驾驶员从业资格证考试题库答案
- 2024年漳州小型客运从业资格证考试真题保过
- 2024年数据库应用代理协议
- 2024年柴油运输合同范本
- 2024年濮阳申请客运从业资格证版试题
- 2024年晋城客运资格证试题完整版
- 2024年青海客运旅客急救考试
- 近代历史人物曾国藩课件
- 农村社会主义教育运动中目前提出的一些问题(二十三条)
- ADA糖尿病指南版医学幻灯片
- 《商业医疗保险》课件
- ISO26262考试试题及答案
- 心肺复苏术后护理问题课件
- 经侦民警开展金融知识讲座
- 2023年中国电信春季校园招聘考前自测高频难、易考点模拟试题(共500题)含答案详解
- 工程设计资质专业人员专业对照表
- 工业自动化相关项目创业计划书
- 四年级科学教科版一天的食物3学习任务单
评论
0/150
提交评论