计算化学公社

标题: vasp 5.4.4 安装失败,求助! [打印本页]

作者
Author:
lannd    时间: 2018-11-28 11:20
标题: vasp 5.4.4 安装失败,求助!
本帖最后由 lannd 于 2018-11-28 11:28 编辑

我用intel-2017 编译器 编译vasp.5.4.4,mkl mpi fftw 全都是用intel套装的。



编译后报错
mkdir build/std ; \
        cp src/makefile src/.objects makefile.include build/std ; \
        make -C build/std VERSION=std all
make[1]: Entering directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std'
rsync -ru ../../src/lib .
cp makefile.include lib
make -C lib -j1
make[2]: Entering directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std/lib'
make libdmy.a
make[3]: Entering directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std/lib'
fpp -f_com=no -free -w0 preclib.F preclib.f90
mpiifort -O1 -free -names lowercase -c -o preclib.o preclib.f90
icc -O -c -o timing_.o timing_.c
icc -O -c -o derrf_.o derrf_.c
icc -O -c -o dclock_.o dclock_.c
fpp -f_com=no -free -w0 diolib.F diolib.f90
mpiifort -O1 -free -names lowercase -c -o diolib.o diolib.f90
fpp -f_com=no -free -w0 dlexlib.F dlexlib.f90
mpiifort -O1 -free -names lowercase -c -o dlexlib.o dlexlib.f90
fpp -f_com=no -free -w0 drdatab.F drdatab.f90
mpiifort -O1 -free -names lowercase -c -o drdatab.o drdatab.f90
mpiifort -O1  -c linpack_double.f
icc -O -c -o getshmem.o getshmem.c
rm -f libdmy.a
ar vq libdmy.a preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o linpack_double.o getshmem.o
ar: creating libdmy.a
a - preclib.o
a - timing_.o
a - derrf_.o
a - dclock_.o
a - diolib.o
a - dlexlib.o
a - drdatab.o
a - linpack_double.o
a - getshmem.o
make[3]: Leaving directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std/lib'
make[2]: Leaving directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std/lib'
rsync -ru ../../src/-liomp5 .
rsync: link_stat "/data2/work/phyjia/vasp/vasp.5.4.4/src/-liomp5" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
make[1]: *** [-liomp5] Error 23
make[1]: Leaving directory `/data2/work/phyjia/vasp/vasp.5.4.4/build/std'
make: *** [std] Error 2


这个错误非常奇怪,我根本就没有在make.include上用到-liomp5,而且“-liomp5”也很奇怪,应该显示libiomp5才对嘛,根本就没有“-liomp5"这个文件名。
而且用find命令搜索也没在vasp源代码找到   -liomp5字符串的文件,vasp编译不容易呀。。。

下面是make.include

# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxIFC\"\
             -DMPI -DMPI_BLOCK=8000 \
             -Duse_collective \
             -DscaLAPACK \
             -DCACHE_SIZE=4000 \
             -Davoidalloc \
             -Duse_bse_te \
             -Dtbdyn \
             -Duse_shmem

CPP        = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC         = mpiifort
FCL        = mpiifort -mkl=sequential -lstdc++

FREE       = -free -names lowercase

FFLAGS     = -assume byterecl -w
OFLAG      = -O2
OFLAG_IN   = $(OFLAG)
DEBUG      = -O0

MKLROOT     = /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/mkl
MKL_PATH   = $(MKLROOT)/lib/intel64
BLAS       =   
LAPACK     =
BLACS      = -lmkl_blacs_intelmpi_lp64
SCALAPACK  = -L$(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)

OBJECTS    = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
             $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a

INCS       =-I$(MKLROOT)/include/fftw

LLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS)


OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o

# For what used to be vasp.5.lib
CPP_LIB    = $(CPP)
FC_LIB     = $(FC)
CC_LIB     = icc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB   = $(FREE)

OBJECTS_LIB= linpack_double.o getshmem.o

# For the parser library
CXX_PARS   = icpc

LIBS       += parser
LLIBS      += -Lparser -lparser -lstdc++

# Normally no need to change this
SRCDIR     = ../../src
BINDIR     = ../../bin

#================================================
# GPU Stuff

CPP_GPU    = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK

OBJECTS_GPU = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o

CC         = icc
CXX        = icpc
CFLAGS     = -fPIC -DADD_ -Wall -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

CUDA_ROOT  ?= /usr/local/cuda/
NVCC       := $(CUDA_ROOT)/bin/nvcc -ccbin=icc
CUDA_LIB   := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas

GENCODE_ARCH    := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
                   -gencode=arch=compute_35,code=\"sm_35,compute_35\" \
                   -gencode=arch=compute_60,code=\"sm_60,compute_60\"

MPI_INC    = $(I_MPI_ROOT)/include64/



这到底是咋回事呢能source都source了
source /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/bin/compilervars.sh  intel64                  
source /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/bin/iccvars.sh intel64                        
source /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/bin/ifortvars.sh intel64                     
source /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/mkl/bin/mklvars.sh  intel64           
source /home/phyjia/intel/compilers_and_libraries_2017.1.132/linux/mpi/bin64/mpivars.sh                          







作者
Author:
lannd    时间: 2018-11-28 17:15
多多少少有点眉目了,src/makefile中有下面一行

$(LIB):
        rsync -ru $(SRCDIR)/$@ .

于是我添加echo命令

$(LIB):
        echo "$@"
        rsync -ru $(SRCDIR)/$@ .

输出的结果是
echo "-liomp5"
-liomp5
rsync -ru ../../src/-liomp5 .

本来$@代表的是lib,为什么突然冒出个-liomp5????????????????????????????????????????????
作者
Author:
hakuna    时间: 2018-11-28 21:34
5.4.4和5.4.1应该没大区别,参考一下这个试试:
http://hmli.ustc.edu.cn/doc/app/vasp.5.4.1-vtst.htm

VASP编译时,error大都和lib有关,新版本的编译器不见得好用,没准2015版的编译器用起VASP来更方便
作者
Author:
dark_cosmos    时间: 2018-11-29 14:10
最近使用Intel_Parallel_Studio_XE_2019_Linux套装安装VASP5.4.1+VTST,makefile.include文件几乎默认,没有任何问题,系统是centos7,楼主可以参考一下
作者
Author:
abin    时间: 2018-11-29 15:00
dark_cosmos 发表于 2018-11-29 14:10
最近使用Intel_Parallel_Studio_XE_2019_Linux套装安装VASP5.4.1+VTST,makefile.include文件几乎默认,没 ...

说的太对了。

用默认的,就能直接编译。
不晓得非要找一堆百度上推荐的垃圾资料,
导出乱改, 导出乱抄, 能正常编译才怪呢。

作者
Author:
lannd    时间: 2018-11-29 19:34
dark_cosmos 发表于 2018-11-29 14:10
最近使用Intel_Parallel_Studio_XE_2019_Linux套装安装VASP5.4.1+VTST,makefile.include文件几乎默认,没 ...

我终于找到原因了,原来编译完intel2017后多了环境变量
$LIBS=-liomp5 -lpthread,这个环境变量和vasp的makefile的变量冲突
直接unset LIBS,然后make什么问题都没有了!
作者
Author:
lannd    时间: 2018-11-29 19:42
本帖最后由 lannd 于 2018-11-29 19:52 编辑
abin 发表于 2018-11-29 15:00
说的太对了。

用默认的,就能直接编译。

你说的好,网上误导人的资料太多了
特别是数据库Blas Lapack  其实根本不用填
本来 要么 Blas Lapack ScaleLapack,要么Blacs ScaleLapack,后者的数据库依赖前者,
只是第一种方式效率比第二种方式低,基本被抛弃了。可是还有很多人把4个数据库全填了
搞笑死了而且有了-mkl=sequential 就不用 -lmkl_sequential,因为都代表采用数学库串行计算不采用并行计算的意思,这样可以防止多种并行计算相互冲突导致计算效率降低。
最后还是放弃openmpi吧,因为非常容易各种兼容问题,本来intel套装什么都有了,就是瞎折腾别的把自己搞死了

作者
Author:
lindlar    时间: 2018-11-29 22:20
lannd 发表于 2018-11-29 19:42
你说的好,网上误导人的资料太多了
特别是数据库Blas Lapack  其实根本不用填
本来 要么 Blas Lapack S ...

确实是这样的,刚刚就被坑了
作者
Author:
gsbear    时间: 2018-11-29 23:29
本帖最后由 gsbear 于 2018-11-30 01:04 编辑

同样编译VASP5.4.4
使用CentOS7 + Intel_Parallel_Studio_XE_2019_Linux

直接source /opt/intel/bin/compilervars.sh -arch intel64
以后再make一切正常


作者
Author:
啦啦黑还黑    时间: 2018-11-30 02:10
补充楼上一点,除了source  compilervars.sh,还要source mpivars.sh

source /opt/intel2018-4/bin/compilervars.sh intel64
source /opt/intel2018-4/impi/2018.4.274/bin64/mpivars.sh intel64

作者
Author:
飞翔的猪    时间: 2019-4-27 09:17
dark_cosmos 发表于 2018-11-29 14:10
最近使用Intel_Parallel_Studio_XE_2019_Linux套装安装VASP5.4.1+VTST,makefile.include文件几乎默认,没 ...

您好  您提到的VTST  是不是要vasp能够运行成功就必须装这个
作者
Author:
dark_cosmos    时间: 2019-4-27 09:48
飞翔的猪 发表于 2019-4-27 09:17
您好  您提到的VTST  是不是要vasp能够运行成功就必须装这个

不是,VTST是VASP的过渡态工具,用到的时候在装也行
作者
Author:
hewei8912    时间: 2019-11-14 10:40
能发我一份安装包吗  hewei8912@163.com谢谢
作者
Author:
lyy2020    时间: 2020-7-16 13:35
可以发我一份VASP安装包么?2322529109@qq.com,感谢您。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3