GULP(General Utility Lattice Program)并行版的安装

GULP(General Utility Lattice Program)基于经典的势能模型,能够以此计算材料的一系列物性,包括晶格优化,原子位置优化,二阶弹性系数,经典势能模型参数拟合,声子计算,缺陷计算等。计算准确程度依赖于势能模型和参数的准确程度,其结果可以作为分子动力学计算的补充。

GULP的官网地址:GULP - Home

下载需要注册提供邮箱,然后根据链接下载,这里安装以版本5.2为例。

虽然经典势能模型的计算量一般并不大,很多计算只需要安装串行版本即可,串行安装非常简单,只要有gfortran即可。这里主要介绍并行版本的安装,并行版本的安装方法分为intel和非intel版本的安装:

1.intel并行版本安装(即借助intel内的mpirun和scalapack等包)

安装可参考其gulp包内的README的提示,即进入gulp包内的Src目录,然后用命令:

./mkgulp -m -c intel -j 安装用核数

上述命令使用intel的fortran编译器以及intel内部的mpirun命令!,本人也试过openmpi,包括用intel编译器编译的版本或者gnu版本编译器编译的版本,安装并行版皆有问题,所以直接采用intel自己的mpirun以及mkl,运行上述命令前首先需要配置intel编译器的环境:

source  intel编译器总路径/compilers_and_libraries**/linux/bin/compilervars.sh  intel64

上述命令会将当前mpirun改为intel的,可以在shell内用which mpirun 验证

然后:

source intel编译器总路径/compilers_and_libraries**/mkl/bin/mklvars.sh intel64 ilp64

以上为intel的mkl的环境变量

运行后,在gulp包内Src目录类执行./mkgulp -m -c intel -j 安装用核数

即可安装完成。当然运行并行版的gulp,也需要用intel内的mpirun,即先执行上述source,再运行。

2gnu并行版安装,需要使用openmpi:

方式1(不推荐,测试发现可能是scalapack版本问题,编译gulp最后报错出现未定义等问题,可能需要尝试不同版本):总思路为自己安装openmpi,blas, lapack以及scalapack,然后需要修改gulp的Src文件内的mkgulp文件,找到其中并行模块的:

'SLIBS=-L/opt/local/lib  -lscalapack' 行,这里要补充自己的scalapack包的位置,最后用mkgulp -m实现gulp的并行版本安装。具体过程为:

1.openmpi的安装:

openmpi的安装比较简单,下载包后,./configure --prefix=“安装路径”  然后make 最后make intall

2.BLAS, LAPACK和SCALAPACK的安装

相应包的链接直接bing搜索即可,如SCALAPCK包: http://www.netlib.org/scalapack/

blas,cblas等包都在LAPACK包中,只需要下载LAPACK包,安装推荐用cmake,非常方便,只需在包总路径下新建一个自己的安装目录,进入后cmake ..  (..意思为上级目录中已有的cmake文件),完成后直接make,然后sudo make install,默认lib包将放在/usr/local/lib内为libblas.a

接着安装scalapack,这个必须在lapack安装后再安装,同样用cmake,过程一致。

最后在gulp的Src内mkgulp中'SLIBS=-L/opt/local/lib  -lscalapack' 行内地址修改为

'SLIBS=-L/usr/local/lib  -lscalapack -llapack -lblas'

然后mkgulp -m编译

方式2(推荐,成功编译,此处参考下述链接介绍方法,但有地方修改ubuntu下简便安装并行版GULP (General Utility Lattice Program) - 哔哩哔哩)

按照上述链接中方法:利用ubuntu系统的apt-get安装scalapack等lib,apt-get安装后lib包默认的位置在/usr/lib/x86_64-linux-gnu/内

1. 配置安装环境与数据库:

sudo apt-get install make

sudo apt-get install gfortran

sudo apt-get install libopenmpi-dev

sudo apt-get install libblas-dev

sudo apt-get install liblapack-dev

sudo apt-get install libscalapack-mpi-dev

sudo apt-get install build-essential libopenmpi-dev libblas-dev liblapack-dev libscalapack-mpi-dev libblacs-mpi-dev   

2. 上述执行后,发现ubuntu18版本,在/usr/lib/x86_64-linux-gnu/内libscalapack的文件名为:

libscalapack-openmpi.so,  所以sudo cp ./libscalapack-openmpi.so ./libscalapack.so

即复制并重命名为libscalapack.so  (这里不修改名称,后面会有错误)

接着修改gulp的Src内mkgulp文件中'SLIBS=-L/opt/local/lib  -lscalapack' 行为:

SLIBS='/usr/lib/x86_64-linux-gnu/libscalapack.so /usr/lib/x86_64-linux-gnu/liblapack.so /usr/lib/x86_64-linux-gnu/libblas.so'    

然后./mkgulp -m  即可编译成功。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值