在进行mpiblacs安装前需要先安装g77
(一)
参考别人的博客---"现在编译器变化很快,一不小心就落后于时代。
过去的不少程序都是用g77编译的,在新的Ubuntu 10.10 Linux系统下,g77已经被gfortran完全替代了。
然而,问题是gfortran并不能完全兼容过去的g77,完成修改程序似乎也是个不大可能的任务。
无奈,只好已业余者的身份自己摸索。
"
我用的Ubuntu 10.04,可以自动安装新版gcc(但是已经没有了g77)。
我是用如下方法安装g77的。
1. 在/etc/apt/source.list中最后头添加如下源(以root的身份,或用 sudo):
deb /ubuntu/ hardy universe
deb-src /ubuntu/ hardy universe
deb /ubuntu/ hardy-updates universe
deb-src /ubuntu/ hardy-updates universe
2. 安装aptitude
sudo apt-get install aptitude
3. 然后执行如下:
sudo aptitude update
sudo aptitude install g77
4. 现在用g77就可编译我原来的程序了。
(二)BLACS安装
官方参考文档:blacs_install
1.下载相关文件/blacs/Blacs.html
我的安装目录是/mpi/blacs/
2.解压文件gunzip –c Blacs(文件名) | tar xvf –
3.在安装目录/mpi/blacs/下创建文件Bmake.inc
4.选择自给所用系统的类型,BLACS/BMAKES/中包含了针对不同系统的Bmake.in c,拷贝合适的文件到第3步创建的Bmake.inc。
我的系统用的是MPI的LINUX系统,操作如下:
cp BMAKES/Bmake.MPI-LINUX Bmake.inc
5.配置Bmake.inc
6.利用BLACS/INSTALL/目录下的程序获得配置Bmake.inc的参数;
比较重要的参数如下:
BTOPdir = 安装BLACS的目录
MPIdir = 安装mpi的目录
BLACSDBGLVL = 调试的级别,有0和1两级
SYSINC = 通信库的include文件夹目录,比如基于mpi就为mpi的includ e的目录
TRANSCOMM:如果用的是MPICH,则设置TRANSCOMM = -DUseMpich
其它参数比较多,可以通过运行INSTALL中的程序来得到相应参数的正确测试,具体可以参考《blacs_install》中2.5节
但我在做这一步时,总是遇到错误,比如make xintface,报错如下:
mpi@mpi-desktop:~/blacs/BLACS/INSTALL$ make xintface
g77 -o /home/mpi/mpi/blacs/BLACS/INSTALL/EXE/xintface Fintface.o Cintface.o /usr/bin/ld: cannot open output file /home/mpi/mpi/blacs/BLACS/INSTALL/EX
E/xintface: No such file or directory
collect2: ld returned 1 exit status
make: *** [/home/mpi/mpi/blacs/BLACS/INSTALL/EXE/xintface] Error 1
mpi@mpi-desktop:~/blacs/BLACS/INSTALL$ make xintface
g77 -o /home/mpi/mpi/blacs/BLACS/INSTALL/EXE/xintface Fintface.o Cintface.o /usr/bin/ld: cannot open output file /home/mpi/mpi/blacs/BLACS/INSTALL/EX
E/xintface: No such file or directory
collect2: ld returned 1 exit status
make: *** [/home/mpi/mpi/blacs/BLACS/INSTALL/EXE/xintface] Error 1 不懂为什么,缺失输出文件?明白的指点下,谢谢啦!
7.设置好Bmake.inc后,就可以编译Blacs了
make COMMLIB
其中COMMLIB是所用的通信库,我用的mpi,则命令为make mpi
8.Blacs编译完成;
9.编译tester,在BLACS安装目录下,输入命令:
make tester
注:为了让g77允许一些警告,可能要做如下更改,改变BLACS/TESTING/Makefi le中第39行:
$(F77) $(F77NO_OPTFLAGS) -c $*.f
为:
$(F77) $(F77NO_OPTFLAGS) -fno-globals -fno-f90 -fugly-complex -w -c $*. f
详细可以参考/blacs/,blacs_errata.html#g77
10.测试;测试文件在BLACS/TESTING/EXE目录下比如基于MPI通信,则像这样执行测试文件:mpirun –n 4 xCbtest_MPI-LINUX-0。