BerkeleyGW编译安装说明

xiaoxiao2021-02-28  111

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

官网: 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, -DGNUPARAFLAG-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如果是其他情况

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

欢迎交流!

转载请注明原文地址: https://www.6miu.com/read-69182.html

最新回复(0)