BerkeleyGW编译安装说明

科学计算软件编译安装方法说明 — BerkeleyGW篇 (提供免费测试 QQ 178068275)

BerkeleyGW的logo

官网:
http://www.berkeleygw.org/
下载:
需要注册下载软件。

1.什么是BerkeleyGW?

The BerkeleyGW Package is a set of computer codes thatcalculates the quasiparticle properties and the optical responses of a largevariety of materials from bulk periodic crystals to nanostructures such asslabs, wires and molecules. The package takes as input the mean-field resultsfrom various electronic structure codes such as the Kohn-Sham DFT eigenvaluesand eigenvectors computed with PARATEC, Quantum ESPRESSO, SIESTA,Octopus, orTBPW (aka EPM).

2.编译环境?

如果是串行版本,需要例如Intel Compiler或者GNU Compiler编译器,如果是并行版本,还额外需要例如mpich/openmpi等mpi的编译器。

3. 安装 Intel Compiler 编译器,设置编译环境

如果使用的是Intel的CPU,建议使用Intel的编译器。
详细安装方法参见博客相关文章。

例如使用TH-1A的Intel 2013编译器编译 vasp,可以加载如下环境变量:

source /opt/intel/composer_xe_2013.0.079/bin/iccvars.sh intel64
source /opt/intel/composer_xe_2013.0.079/bin/ifortvars.sh intel64
source /opt/intel/composer_xe_2013.0.079/mkl/bin/mklvars.sh intel64

4.安装 MPI Compiler,设置编译环境

编译并行版的程序需要并行编译器,例如MPI并行的程序需要MPI编译器,常用的MPI例如Intel MPI 、MPICH 、OPENMPI等。
不同的机器可能针对自身硬件进行MPI优化,天河系统的MPI是基于开源MPICH进行的二次开发优化,进而支持性能卓越的天河自主高速互联网络。
详细安装方法参见博客相关文章。

例如使用TH-1A的Intel 2013编译器编译的mpich,可以加载如下环境变量:

export MPI_HOME=/usr/local/mpi-intel2013    
export PATH=$MPI_HOME/bin:$PATH    
export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH 

5.编译软件

5.1 设置编译环境

参考上面的3、4部分。

5.2 配置文件

以1.0.6版本为例:

tar zxvf BerkeleyGW-1.0.6.tar.gz
cd BerkeleyGW-1.0.6

arch.mk文件
在config文件夹中,有README文件,是arch.mk文件的模板,可以依据自己的实际情况进行修改,也可以参考config文件夹中的文件。
后面章节会有详细介绍,此处仅给出结果。

cp config/README arch.mk

依据实际情况修改arch.mk即可。
flavor.mk文件
如果编译real版本:

cp flavor_real.mk flavor.mk

如果编译cplx版本:

cp flavor_cplx.mk flavor.mk

5.2 make & make install

make all 2>&1 |tee m.log
time make install INSTDIR=$HOME/software/berkeleyGW-1.0.6 \
     2>&1 |tee mi.log

INSTDIR参数指明了安装到哪个目录。

6.设置环境变量

编译好后,设置一下环境变量就可以使用了,设置方法如下:

export BGW_HOME=$HOME/software/berkeleyGW-1.0.6
export PATH=$BGW_HOME/bin:$PATH
export LD_LIBRARY_PATH=$BGW_HOME/lib:$LD_LIBRARY_PATH

7.arch.mk文件详解

英文好的朋友,可以直接阅读berkeleyGW-1.0.6/config/README即可,下面列出主要的参数及说明。

编译参数详解

参数备注
COMPFLAG-DINTEL编译器类型,常用的还可以选择-DPGI, -DGNU
PARAFLAG-DMPI并行参数,加上就是编译并行版本,否则是串行版本
MATHFLAG-DUSESCALAPACK -DUSEESSL -DUNPACKED数学库参数,-DUSESCALAPACK是使用ScaLAPACK数学库,-DUSEESSL是部分代码使用ESSL代替LAPACK, -DUNPACKED在EPM中优先使用解压缩的哈密顿算子。通常使用第一个就可以。
DEBUGFLAG-DDEBUG -DVERBOSEdebug参数,对于fortran和C++,-DDEBUG开启额外的检查,-DVERBOSE输出额外的信息
C_DEBUGFLAG-DDEBUGdebug参数,对于c,-DDEBUG开启额外的检查
FCPPcpp -ansi预处理器参数
F90freempif90 -free -fopenmpfortran编译器参数,mpif90为编译器的名称,-free参考的是ifort参数,-fopenmp是为了支持多线程的参数
LINKmpif90 -fopenmp链接器参数,mpif90为编译器的名称,-fopenmp是为了支持多线程的参数
FOPTS-O3fortran编译优化参数,-O3 是常用的基本优化参数,还有很多,不同编译器也不一样
FNOOPTS$(FOPTS)fortran编译优化参数,特别针对epsilon_main和sigma_main的。因为-O3可能会遇到报错,所以额外设置该参数
MOD_OPT-modulefortran编译参数,指明module被创建的位置,针对不同编译器是不同的,-module是ifort的参数
C_PARAFLAG-DPARAc++并行编译参数,并行编译保留该参数,串行编译清空该参数
CC_COMPmpicxxC++编译命令和参数
C_COMPmpiccC编译命令和参数
C_LINKmpicxxC/C++连接命令和参数
C_OPTS-O3C/C++编译优化参数
REMOVE/bin/rm -f删除命令,用于make clean

数学库参数详解
FFTW库
通用的fftw

FFTWPATH = /path/to/fftw  # FFTW库的路径,注意修改为实际路径,
FFTWLIB = -L$(FFTWPATH)/lib -lfftw 
FFTWINCLUDE = $(FFTWPATH)/include

或者选择 intel mkl的fftw接口

FFTWPATH = $(MKLROOT)
FFTWLIB = -L$(MKLROOT)/interfaces/fftw2xf -lfftw2xf_intel 
FFTWINCLUDE = $(MKLROOT)/include/fftw

LAPACK库
这个库有很多种,在这里给出mkl库的实现,及写法:

LAPACKLIB    = -Wl,--start-group \
               $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \
               $(MKLROOT)/lib/intel64/libmkl_sequential.a \
               $(MKLROOT)/lib/intel64/libmkl_core.a \
               -Wl,--end-group -lpthread

SCALAPACK库

SCALAPACKLIB = $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \ 
$(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a

testscript

参数备注
TESTSCRIPTqsub {architecture}.scr如果是pbs作业管理系统
TESTSCRIPTmake check-parallel如果是其他情况

以上就是该软件编译安装的全部内容。

欢迎交流!

微信连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值