欢迎来到天天文库
浏览记录
ID:8810484
大小:49.50 KB
页数:6页
时间:2018-04-08
《compaqvisualfortran6.6并行编程环境的配置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、CompaqVisualFortran6.6并行编程环境的配置Windows平台并行编程环境的配置所用的软件:mpich2-1.0.5-win32-ia32.msi CompaqVisualFortran6.61、如果本机上没有安装过Microsoft.NET.Framework,安装1.0.5这个版本的mpich2时,那么会提示你安装,我装的是2.0版本dotnetfx.exe,2.0版本以上的都行,然后把mpich2-1.0.5装上。2、mpich2安装成功后,为了使用命令行方式执行程序的方便,将mpi路径C:Pr
2、ogramFilesMPICH2bin添加到环境变量path中,这样就可以在任何地方使用mpiexec了。3、CVF安装没什么,就是序列号老记不住,再写一遍,33206-050-0010743-00007。然后将mpich2的include和lib路径添加到CVF的搜索路径,在Tools=>Options=>Directories的Includefiles和Libraryfiles中。4、解决头文件问题。 在fortran77的固定格式程序中,要加入一行include'mpif.h',头文件mpif.h中定义了MPI的一些常量。90程序就有点麻烦了,因为在f
3、ortran90程序中,习惯使用module,书上也说在90程序中要用usempi来替代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程序
4、,不改回来的话,77程序倒也不出错。 2)、参考了网上的资料,自己做一个mpi.mod文件,写这样一段程序:modulempi !include'mpif.h' !****************endmodulempiprogrammainend将mpif.h文件中的内容都复制到星号处,并且也将以C开头的行改成前加上!。然后到debug目录下就找到了一个mpi.mod文件,将其拷贝到mpich的include目录下,再写90程序时就可以用usempi了。当然也可以弄一个release模式的,不过我连接时有两个警告,还没弄明白怎么回事。5、CVF编译连接选
5、项的配置 主要看了一篇官方文档,是在下载mpich时一起下载的。这里主要的步骤是红色字标出的,其他的选项不做也能成功编译连接,当然最好还是都改了。A. C/C++Tab–CATEGORY:PreprocessorAdd“C:mpich2include”tothe“Additionalincludedirectories”box.B. LinkTab–CATEGORY:Input· Add“C:mpich2lib”tothe“Additionallibrarypath”.· Add“cxx.lib”,“mpi.li
6、b”,“fmpich2.lib”,“fmpich2s.lib”,and“fmpich2g.lib”totheendofthe“Object/librarymodules”box.· “cxxd.lib”shouldbeusedfortheDebugconfiguration.其实这里只填fmpich2s.lib就可以了,当然最好都填上吧。而且可以不在Link=>Gaegory:Input这个选项卡上改,而是在程序文件的开始处加上一行:!DEC$OBJCOMMENTLBI:"fmpich2s.lib" 这样程序的可移植性更好。C. FortranT
7、ab–CATEGORY:ExternalProcedures· ArgumentPassingConventions:C,byreference· Stringlengthargumentpassing:AfterallargsD. FortranTab–CATEGORY:Preprocessor· PredefinedPreprocessorSymbols:MPI(addthistowhatisthere).(Thisisonlyreallyneededifpreprocessingisdone,but
此文档下载收益归作者所有