Questions regarding the compilation of VASP on various platforms: hardware, compilers and libraries, etc.
Moderators: Moderator, Global Moderator
-
vincent_mathew
- Newbie
![Newbie Newbie](./images/ranks/star.gif)
- Posts: 4
- Joined: Wed Jun 19, 2024 4:10 am
#1
Post
by vincent_mathew » Sun Jul 07, 2024 10:16 am
We are facing an issue with VASP 6.4.0 installation in UBUNTU 18.04 system. Intel compiler is used.
The error appearing is:
" line 711: ifort: command not found
makefile:167: recipe for target 'ml_ff_abinitio.o' failed "
The complete error log is given as:
Code: Select all
physicstest@workstation1:~/install_here/vasp.6.4.0$ make
if [ ! -d build/std ] ; then mkdir -p build/std ; fi
cp src/makefile src/.objects src/makedeps.awk makefile.include build/std
make -C build/std VERSION=std check
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
exit 0
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
make -C build/std VERSION=std cleandependencies -j1
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rm -f .depend
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
make -C build/std VERSION=std all
make[1]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rsync -ru ../../src/lib .
cp makefile.include lib
make -C lib -j1
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make libdmy.a
make[3]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make[3]: 'libdmy.a' is up to date.
make[3]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/lib'
rsync -ru ../../src/parser .
cp makefile.include parser
make -C parser -j1
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make libparser.a
make[3]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make[3]: 'libparser.a' is up to date.
make[3]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std/parser'
rsync -u ../../src/*.F ../../src/*.inc .
make build_info
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
printf " character(len=*), parameter :: cpp_options = '&\n&-DHOST=\"LinuxIFC\" &\n&-DMPI &\n&-DMPI_BLOCK=8000 &\n&-Duse_collective &\n&-DscaLAPACK &\n&-DCACHE_SIZE=4000 &\n&-Davoidalloc &\n&-Dvasp6 &\n&-Duse_bse_te &\n&-Dtbdyn &\n&-Dfock_dblbuf &\n&-D_OPENMP'\n" > build_info.inc
printf " character(len=*), parameter :: link_line = '&\n&mpiifort &\n&-qmkl &\n&-Llib &\n&-ldmy &\n&-Lparser &\n&-lparser &\n&-lstdc++ &\n&-L/path/to/your/mkl/installation/lib/intel64 &\n&-lmkl_scalapack_lp64 &\n&-lmkl_blacs_intelmpi_lp64'\n" >> build_info.inc
printf " character(len=*), parameter :: fc = '&\n&mpiifort &\n&-qopenmp'\n" >> build_info.inc
printf " character(len=*), parameter :: fcl = '&\n&mpiifort &\n&-qmkl'\n" >> build_info.inc
printf " character(len=*), parameter :: fflags = '&\n&-assume &\n&byterecl &\n&-w &\n&-xHOST'\n" >> build_info.inc
printf " character(len=*), parameter :: llibs = '&\n&-lstdc++ &\n&-L/path/to/your/mkl/installation/lib/intel64 &\n&-lmkl_scalapack_lp64 &\n&-lmkl_blacs_intelmpi_lp64'\n" >> build_info.inc
printf " character(len=*), parameter :: incs = '&\n&-I/path/to/your/mkl/installation/include/fftw'\n" >> build_info.inc
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
rm -f vasp ; make vasp ; cp vasp ../../bin/vasp_std
make[2]: Entering directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
mpiifort -qopenmp -free -names lowercase -assume byterecl -w -xHOST -O2 -I/path/to/your/mkl/installation/include/fftw -c ml_ff_abinitio.f90
/home/physicstest/MD/Linux-x86_64/IntelMPI5/bin/mpiifort: line 711: ifort: command not found
makefile:167: recipe for target 'ml_ff_abinitio.o' failed
make[2]: *** [ml_ff_abinitio.o] Error 127
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
makefile:13: recipe for target 'std' failed
make: *** [std] Error 2
The make.include file is as following:
Code: Select all
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxIFC\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf \
-D_OPENMP
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpiifort -qopenmp
FCL = mpiifort
FREE = -free -names lowercase
FFLAGS = -assume byterecl -w
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
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
# For the parser library
CXX_PARS = icpc
LLIBS = -lstdc++
##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##
# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -xHOST
FFLAGS += $(VASP_TARGET_CPU)
# Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK)
# (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
FCL += -qmkl
MKLROOT ?= /path/to/your/mkl/installation
LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
INCS =-I$(MKLROOT)/include/fftw
# HDF5-support (optional but strongly recommended)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /path/to/your/hdf5/installation
#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
#INCS += -I$(HDF5_ROOT)/include
# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier
# For the fftlib library (hardly any benefit in combination with MKL's FFTs)
#FCL = mpiifort fftlib.o -qmkl
#CXX_FFTLIB = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
#LIBS += fftlib
Please help with some solutions. Thank you in advance for your help.
-
alexey.tal
- Global Moderator
![Global Moderator Global Moderator](./images/ranks/stargmod.gif)
- Posts: 310
- Joined: Mon Sep 13, 2021 12:45 pm
#2
Post
by alexey.tal » Mon Jul 08, 2024 9:15 am
Dear Vincent,
We have a comprehensive guide on how to install VASP in Ubuntu
here.
This error means that there is no ifort command found in your environment.
-
vincent_mathew
- Newbie
![Newbie Newbie](./images/ranks/star.gif)
- Posts: 4
- Joined: Wed Jun 19, 2024 4:10 am
#3
Post
by vincent_mathew » Tue Jul 09, 2024 4:14 am
Thank you for the reply.
We have followed the same instructions. But there is no instructions available for VASP installation in UBUNTU 18.04. We are a bit confused that whether VASP 6.4 is compatabile with UBUNTU 18.04 or not.
We also tried the fortran compiler (makefile.include.gnu_omp) and followed the vaspwiki instructions for ubuntu 20.0.
Then the following error appears:
Code: Select all
paw.F:1910:0:
// str(SIZE(CL_SHIFT,DIM=1)),__FILE__,__LINE__)
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
paw.F:1598:0:
ion: DO NI=1,T_INFO%NIONS
Error: enclosing ‘parallel’
makefile:171: recipe for target 'paw.o' failed
make[2]: *** [paw.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:
str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:
DO NCOL=1,NCOL_TOT
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:
str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:
DO NCOL=1,NCOL_TOT
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: *** Waiting for unfinished jobs....
nonlr.F:730:0:
str(IND_ON_CPU) // " " // str(GRID%RL%NCOL), __FILE__, __LINE__)
Error: ‘__vtab_tutor_Logger’ not specified in enclosing ‘parallel’
nonlr.F:702:0:
DO NCOL=1,NCOL_TOT
Error: enclosing ‘parallel’
makefile:167: recipe for target 'nonlr.o' failed
make[2]: *** [nonlr.o] Error 1
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/std'
makefile:13: recipe for target 'std' failed
make: *** [std] Error 2
make: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/gam'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/gam'
makefile:13: recipe for target 'gam' failed
make: *** [gam] Error 2
make[2]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/ncl'
cp: cannot stat 'vasp': No such file or directory
makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/physicstest/install_here/vasp.6.4.0/build/ncl'
makefile:13: recipe for target 'ncl' failed
make: *** [ncl] Error 2
The makefile is given:
Code: Select all
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf \
-D_OPENMP
CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = /usr/bin/mpif90 -fopenmp
FCL = /usr/bin/mpif90 -fopenmp
FREE = -ffree-form -ffree-line-length-none
FFLAGS = -w -ffpe-summary=none
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
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 = gcc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB = linpack_double.o
# For the parser library
CXX_PARS = g++
LLIBS = -lstdc++
##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##
# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -march=native
FFLAGS += $(VASP_TARGET_CPU)
# For gcc-10 and higher (comment out for older versions)
#FFLAGS += -fallow-argument-mismatch
# BLAS and LAPACK (mandatory)
#OPENBLAS_ROOT ?= /path/to/your/openblas/installation
BLASPACK = -lopenblas
# scaLAPACK (mandatory)
#SCALAPACK_ROOT ?= /path/to/your/scalapack/installation
SCALAPACK = -lscalapack
LLIBS += $(SCALAPACK) $(BLASPACK)
# FFTW (mandatory)
#FFTW_ROOT ?= /path/to/your/fftw/installation
LLIBS += -lfftw3 -lfftw3_omp
INCS += -I/usr/include
# HDF5-support (optional but strongly recommended)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /path/to/your/hdf5/installation
#LLIBS += -lhdf5_fortran
#INCS += -I/usr/include/hdf5/openmpi/
# For the VASP-2-Wannier90 interface (optional)
CPP_OPTIONS += -DVASP2WANNIER90
WANNIER90_ROOT ?= /home/physicstest/install_here/wannier90-3.1.0/
LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier
# For the fftlib library (recommended)
#CPP_OPTIONS+= -Dsysv
#FCL += fftlib.o
#CXX_FFTLIB = g++ -fopenmp -std=c++11 -DFFTLIB_THREADSAFE
#INCS_FFTLIB = -I./include -I$(FFTW_ROOT)/include
#LIBS += fftlib
#LLIBS += -ldl
-
alexey.tal
- Global Moderator
![Global Moderator Global Moderator](./images/ranks/stargmod.gif)
- Posts: 310
- Joined: Mon Sep 13, 2021 12:45 pm
#4
Post
by alexey.tal » Tue Jul 09, 2024 12:04 pm
What version of GCC are you using? I found the by default Ubuntu 18.04 comes with GCC 7, which is probably too old. We recommend GCC 12 for VASP 6.4.3. See the list of recommended toolchains
here. The error seems to be related to OpenMP directives, I would suggest that you try to compile VASP without OMP first and see if that works.
-
vincent_mathew
- Newbie
![Newbie Newbie](./images/ranks/star.gif)
- Posts: 4
- Joined: Wed Jun 19, 2024 4:10 am
#5
Post
by vincent_mathew » Wed Jul 10, 2024 12:03 pm
alexey.tal wrote: ↑Tue Jul 09, 2024 12:04 pm
What version of GCC are you using? I found the by default Ubuntu 18.04 comes with GCC 7, which is probably too old. We recommend GCC 12 for VASP 6.4.3. See the list of recommended toolchains
here. The error seems to be related to OpenMP directives, I would suggest that you try to compile VASP without OMP first and see if that works.
Thank you for your suggestion. We successfully built VASP without OpenMP and were able to run calculations without parallelization. We used a modified version of makefile.include.gnu. Our GCC version is 7.5, and the versions of other tools differ from those specified in the tool chain. We hope this will not affect future calculations.
-
alexey.tal
- Global Moderator
![Global Moderator Global Moderator](./images/ranks/stargmod.gif)
- Posts: 310
- Joined: Mon Sep 13, 2021 12:45 pm
#6
Post
by alexey.tal » Mon Jul 15, 2024 9:50 am
We successfully built VASP without OpenMP and were able to run calculations without parallelization.
In your
makefile.include you have MPI enabled, so even if you compile your code without OpenMP you can still use MPI parallelization.