|
|
本帖最后由 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
|
|