||
之前在 Ubuntu 下编译过 Siesta. 参看:Ubuntu 下并行编译 Siesta。
最近在 Cygwin 环境下尝试编译 Siesta,笔记如下:
我在 Windows 7 64 bit 下安装 Cygwin 以后,都无法顺利编译 MPICH 或者 OpenMPI。解决办法是:安装 Cygwin 的时候就选择安装 OpenMPI,也就是凡搜索到符合 openmpi 字样的都选择安装。其他必须要安装的还包括:gcc,g++,gfortran,make,wget 等等。
但是且慢,谁能在初装 Cygwin 的时候就选好所有需要的程序呢?这不太可能。但也有解决办法:每次需要加装软件的时候就重新安装一次 Cygwin,只要安装到默认路径下,旧的系统并不会受到影响。
与 Ubuntu 下的安装相比,Cygwin 的 MPI 编译器位置是固定的,位于
/usr/bin/mpicc
/usr/bin/mpif90
等等位置。
Lapack的安装与 Ubuntu 相同,只不过在 make.inc 文件里 gfortran 的路径有所不同:
FORTRAN = /usr/bin/gfortran
而 BLACS 的 Bmake.inc 要注意 MPI 路径部分选择:
MPILIBdir = /usr/lib/
MPIINCdir = /usr/include/
MPILIB = /usr/lib/libmpi_mpifh.dll.a
尤其第三行的文件名。同时 MPI 编译器的路径是:
F77 = /usr/bin/mpif77
CC = /usr/bin/mpicc
Scalapack 也只要注意在 SLmake.inc 里正确选择 MPI 编译器路径:
FC = /usr/bin/mpif77
CC = /usr/bin/mpicc
其他都一样。
编译 Siesta 2.0.2 的时候,要先更新软件包(Src 目录)里的 config.guess,参见 Cygwin 上 config.guess 无法工作的解决办法。然后还是要在 Src 目录下执行
./configure
修改生成的 arch.make 并注意以下细节:
FC=/usr/bin/mpif90
MPI_LIB=/usr/lib
即可。然后直接 make 就可以了。
Cygwin 既然效率不高,有时可能并不必要并行计算。编译 Siesta 串行版本极其简单,只要在安装 Cygwin 的时候选择安装 gfortran,再到 Siesta 2.0.2 的 Src 目录下先更新 config.guess,最后执行:
./configure
make
就可以了。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-24 00:02
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社