Page 1 of 1
vasp.6.2.1 installation on ubuntu.21.01
Posted: Tue May 25, 2021 12:56 am
by celina_sikorska
I have followed the instructions of vasp installation on ubuntu (
wiki/index.php/A_Ubuntu_based_installation_of_VASP). However, I was unsuccessful. I would like to ask which version(s) of ubuntu are compilable with vasp.6.2.1. Thanks!
Re: vasp.6.2.1 installation on ubuntu.21.01
Posted: Tue May 25, 2021 7:43 am
by andreas.singraber
Hello!
Please have a look at the
posting guidlines and be more specific about the problems you encountered. I can confirm that Linux Mint 20.1 (which is based on Ubuntu 20.04) works fine, but without more detailed information (your makefile.include, your stdout/stderr during compilation) we are unable to help you.
Re: vasp.6.2.1 installation on ubuntu.21.01
Posted: Wed May 26, 2021 2:54 am
by celina_sikorska
Hello Andreas,
Thank you for your answer. Please find enclosed a makefile.include and an error report.
Thank you for your help!
Re: vasp.6.2.1 installation on ubuntu.21.01
Posted: Wed Jun 09, 2021 9:05 pm
by andreas.singraber
Hello again!
Sorry for the late reply.. I could reproduce this issue with a virtual machine running Ubuntu 21.04. There GCC 10 is the new default compiler and it seems that it is (unlike GCC 9) now much more strict regarding mismatches between subroutine calls and their respective definitions. There may be a fix in the code in the next release but for the moment there is also a simple workaround: just add the flag
to the FFLAGS section of the makefile.include. This will degrade the error to a warning and the build should work then.
Unrelated to this error I would also recommend to always start with the makefiles which are provided in the "arch" directory. Here is a version that should work on Ubuntu 21.04 which I derived from "arch/makefile.include.linux_gnu":
Code: Select all
# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf
CPP = gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90
FREE = -ffree-form -ffree-line-length-none
FFLAGS = -w -march=native -fallow-argument-mismatch
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
LIBDIR = /usr/lib/x86_64-linux-gnu
BLAS = -L$(LIBDIR) -lblas
LAPACK = -L$(LIBDIR) -llapack
BLACS =
SCALAPACK = -L/usr/lib -lscalapack-openmpi $(BLACS)
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
FFTW ?=
LLIBS += -lfftw3
INCS = -I/usr/include
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 getshmem.o
# For the parser library
CXX_PARS = g++
LLIBS += -lstdc++
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
#================================================
# GPU Stuff
CPP_GPU = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DCUFFT_MIN=28 -UscaLAPACK -Ufock_dblbuf # -DUSE_PINNED_MEMORY
OBJECTS_GPU= fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o
CC = gcc
CXX = g++
CFLAGS = -fPIC -DADD_ -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS
# Minimal requirement is CUDA >= 10.X. For "sm_80" you need CUDA >= 11.X.
CUDA_ROOT ?= /usr/local/cuda
NVCC := $(CUDA_ROOT)/bin/nvcc
CUDA_LIB := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas
GENCODE_ARCH := -gencode=arch=compute_60,code=\"sm_60,compute_60\" \
-gencode=arch=compute_70,code=\"sm_70,compute_70\" \
-gencode=arch=compute_80,code=\"sm_80,compute_80\"
MPI_INC = /opt/gnu/ompi-3.1.4-GNU-5.4.0/include
Also note that you may not achieve optimal performance if you stick to the default compiler and system libraries. Depending on your hardware it may be worth trying out e.g. the Intel oneAPI toolkit or the NVIDIA HPC SDK.
Best,
Andreas