Chinaunix首页 | 论坛 | 博客
  • 博客访问: 284751
  • 博文数量: 52
  • 博客积分: 2586
  • 博客等级: 少校
  • 技术积分: 508
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-29 19:06
文章分类

全部博文(52)

文章存档

2022年(1)

2019年(1)

2018年(1)

2013年(1)

2012年(1)

2011年(10)

2010年(16)

2009年(13)

2008年(6)

2007年(2)

我的朋友

分类: 系统运维

2010-07-08 10:24:39

Windows MPI开发环境的配置

默认分类 2008-08-18 18:02:56 阅读271 评论0 字号:

近日又捡起并行编程了,都忘了怎么配置集成环境了,搞了一阵子才成功,搜了网上的一些资料和以前自己搜集的资料,现在把过程写下来吧。

所用的软件:mpich2-1.0.5-win32-ia32.msi  

                        Compaq Visual Fortran 6.6

1、如果本机上没有安装过Microsoft .NET .Framework,安装1.0.5这个版本的mpich2时,那么会提示你安装, 我装的是2.0版本dotnetfx.exe,2.0版本以上的都行,然后把mpich2-1.0.5装上。

2、mpich2安装成功后,为了使用命令行方式执行程序的方便,将mpi路径C:\ProgramFiles\MPICH2\bin添加到环境变量path中,这样就可以在任何地方使用mpiexec了。

3、CVF安装没什么,就是序列号老记不住,再写一遍,33206-050-0010743-00007。然后将mpich2的include和lib路径添加到CVF的搜索路径,在Tools=>Options=>Directories的Include files和Library files中。

4、解决头文件问题。

     在fortran77的固定格式程序中,要加入一行 include 'mpif.h' ,头文件 mpif.h 中定义了MPI的一些常量。90程序就有点麻烦了,因为在fortran90程序中,习惯使用module,书上也说在90程序中要用 use mpi 来替代 include 'mpif.h' ,可是mpich2-1.0.5中的lib和include文件夹里都没有那个 mpi.mod ,其他的mpich版本好像也没有,至少mpich.nt.1.2.5.exe没有。

      解决办法:

      1)、在90程序中也使用 include 'mpif.h' ,而且要把mpif.h中以C开头的注释前加上!,还有三行以CDEC$开头,也要用!来注释,不然出错。这中解决办法会更改mpif.h文件,那么再写77程序时是不是还要改回来呢,我试了helloworld程序,不改回来的话,77程序倒也不出错。

      2)、参考了网上的资料,自己做一个mpi.mod文件,写这样一段程序:

module mpi

   ! include 'mpif.h'

   ! ****************

end module mpi

program main

end

将mpif.h文件中的内容都复制到星号处,并且也将以C开头的行改成前加上!。然后到debug目录下就找到了一个mpi.mod文件,将其拷贝到mpich的include目录下,再写90程序时就可以用 use mpi 了。当然也可以弄一个release模式的,不过我连接时有两个警告,还没弄明白怎么回事。

5、CVF编译连接选项的配置

       主要看了一篇官方文档,是在下载mpich时一起下载的。这里主要的步骤是红色字标出的,其他的选项不做也能成功编译连接,当然最好还是都改了。

A.    C/C++ Tab – CATEGORY: Preprocessor

Add “C:\mpich2\include” to the “Additional include directories” box.

B.     Link Tab – CATEGORY: Input

·         Add “C:\mpich2\lib” to the “Additional library path”.

·         Add “cxx.lib”, “mpi.lib”, “fmpich2.lib”, “fmpich2s.lib”, and “fmpich2g.lib” to the end of the “Object/library modules” box.

·         “cxxd.lib” should be used for the Debug configuration.

其实这里只填 fmpich2s.lib 就可以了,当然最好都填上吧。而且可以不在 Link=>Gaegory : Input 这个选项卡上改,而是在程序文件的开始处加上一行:!DEC$ OBJCOMMENT LBI:"fmpich2s.lib"   这样程序的可移植性更好。

C.     Fortran Tab – CATEGORY: External Procedures

·         Argument Passing Conventions: C, by reference

·         String length argument passing:   After all args

D.    Fortran Tab – CATEGORY: Preprocessor

·         Predefined Preprocessor Symbols:     MPI (add this to what is there).

(This is only really needed if preprocessing is done, but won’t hurt to add.)

·         INCLUDE and USE Paths:        C:\mpich2\include

·         Select Use FPP

6、每新建一个工程,都要像5中那样去设置选项,很是麻烦。在CVF这里可以保存下这些设置。点击菜单File=>Save Fortran Environment,点击Save Environment按钮,即保存一个新的环境(可以给一个名称),这样就可以在进行并行程序设计的时候,较为方便地使用这一编译环境,举例如下:  

    (1) 点击菜单File->New... ;  

    (2) 在Projects标签中选择Fortran Console Application,然后再右侧输入框中给出项目的名称,点击OK;

    (3) 在接下来的对话框中选择An empty project,点击Finish。这时会弹出对话框 ”Would you like to consider applying   options from a Saved Fortran Console Environments? ”,点“是” ;

    (4) 在对话框中List of Console Environment中,选择前面准备好的环境名称,点击Apply按钮,并确认;  

    (5) 在接下来的对话框中直接点击OK。

阅读(5612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~