Installing VASP on RedHat and AMD EPYC 7313

Questions regarding the compilation of VASP on various platforms: hardware, compilers and libraries, etc.

Moderators: Global Moderator, Moderator

Post Reply
Message
Author
manoj_wijesingha
Newbie
Newbie
Posts: 19
Joined: Wed Sep 21, 2022 6:52 pm

Installing VASP on RedHat and AMD EPYC 7313

#1 Post by manoj_wijesingha » Fri Sep 23, 2022 7:15 pm

Hello,
Which is the best way to create a makefile.include of VASP 6.3.1 by using the best compilers for this architecture:
OS: RedHat 8 x86_64
Processor: 64 x AMD EPYC 7313 16-Core

and we am unable to use sudo command for the installation of some compiler libraries because we use Longleaf cluster machines for the computational works. But we can load some compiler modules of our working directory.
Could you please help me to compile and install VASP on this cluster.
Thank you

Manoj

ferenc_karsai
Global Moderator
Global Moderator
Posts: 422
Joined: Mon Nov 04, 2019 12:44 pm

Re: Installing VASP on RedHat and AMD EPYC 7313

#2 Post by ferenc_karsai » Mon Sep 26, 2022 6:52 am

You have some template makefile.includes in the arch directory of your VASP download.
Please have a look at our wiki documentation on installation:
https://www.vasp.at/wiki/index.php/Inst ... VASP.6.X.X

manoj_wijesingha
Newbie
Newbie
Posts: 19
Joined: Wed Sep 21, 2022 6:52 pm

Re: Installing VASP on RedHat and AMD EPYC 7313

#3 Post by manoj_wijesingha » Mon Sep 26, 2022 3:20 pm

Hello,
Thank you for your response. Actually, I could install VASP 6.3.1 on my personal computer, but still I am worrying the installation on this cluster machine. It gives an error by mpif90 and I used aocc, aocl, openmpi, hdf5 compile libraries for this process.

We have another cluster machine;
OS: RedHat 7 x86_64
Processor: 44 x Intel(R) Xeon CPU E5-2699A
For this cluster machine, I used intel_oneapi/2021/4.0, mvapich2_2.3a/intel_17.2 and hdf5/1.10.2-mvqpich2_intel to create makefile.include and compile. The compilation and installation were unsuccessful for this cluster machine as well.
Could please help me to create a suitable makefile.include by matching these properties and compile it.
Thank you.

Manoj.

ferenc_karsai
Global Moderator
Global Moderator
Posts: 422
Joined: Mon Nov 04, 2019 12:44 pm

Re: Installing VASP on RedHat and AMD EPYC 7313

#4 Post by ferenc_karsai » Mon Oct 03, 2022 10:11 am

Please post your output errors for both machines.
Please also post makefile.include for both and the exact toolchain for both.

Here we have a list of toolchains that we use to daily compile VASP with:
wiki/index.php/Toolchains

If possible try to switch to the combinations that show no issues.

manmohan.brahma
Newbie
Newbie
Posts: 1
Joined: Fri Sep 18, 2020 12:59 pm

Re: Installing VASP on RedHat and AMD EPYC 7313

#5 Post by manmohan.brahma » Sat Jul 22, 2023 6:07 pm

You can use the below script. You will need to download the VASP Source tar ball as vasp.6.4.0.tgz.
It will automatically download and build OpenMPI. The script will untar the VASP source and build the vasp std binary.
Make sure you adjust the AOCC Path and AOCL Library path according to your environment.

Code: Select all

#!/bin/bash
echo "Starting VASP Build script"
echo "setting the paths"
###################################################
################## USER SECTIONS ###################
export SOURCES=$PWD
######## Set the Paths for AOCC ###############
export COMPILEROOT=/home/software/aocc/aocc-compiler-3.2.0
#export OPENMPIROOT=/home/software/openmpi/aocc32/4.1.1_noucx/
export OPENMPIROOT=$SOURCES/openmpi

export LD_LIBRARY_PATH=$COMPILEROOT/lib:$LD_LIBRARY_PATH
export PATH=$COMPILEROOT/bin:$PATH
export INCLUDE=$COMPILEROOT/include:$INCLUDE

which clang
export AOCLROOT=/home/software/aocl/aocc/3.2.0
export BLISROOT=${AOCLROOT}
export LIBFLAMEROOT=${AOCLROOT}
export SCALAPACKROOT=${AOCLROOT}
export FFTWROOT=${AOCLROOT}
### path to vasp source file ###
export VASPROOT=$SOURCES/vasp.6.4.0

### Seting the env before starting the build ###
export CC=clang
export CXX=clang++
export FC=flang
export F90=flang
export F77=flang
export ARCH=znver3

# Setting up the compiler flags
export CFLAGS="-O3 -march=$ARCH -mtune=$ARCH -fopenmp -fPIC "
export CXXFLAGS="-O3 -march=$ARCH -mtune=$ARCH -fopenmp -fPIC "
export FCFLAGS="-O3 -march=$ARCH -mtune=$ARCH -fopenmp -fPIC "
export FFLAGS="-O3 -march=$ARCH -mtune=$ARCH -fopenmp -fPIC "

################# END OF USER SECTIONS ###################
##########################################################
echo "###################################################################################"
echo "# OpenMPI #"
echo "###################################################################################"
if [ -e $OPENMPIROOT/bin/mpicc ];
then
        echo "OpenMPI File Exists"
        echo "OpenMPIROOT=$OPENMPIROOT"
else
        rm -rf openmpi-4.1.5  openmpi
        if [ -e "openmpi-4.1.5.tar.bz2" ]
        then
                break
        else
                echo "Downloading openMPI"
                wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.bz2
        fi
        tar -xvf openmpi-4.1.1.tar.bz2
        cd openmpi-4.1.1
        ./configure --prefix=$OPENMPIROOT  CC=${CC} CXX=${CXX} FC=${FC} CFLAGS="-O3 -march=$ARCH" CXXFLAGS="-O3 -march=$ARCH"  FCFLAGS="-O3 -march=$ARCH" LDFLAGS=" -march=$ARCH" --enable-mpi-fortran --enable-shared=yes --enable-static=yes  --enable-mpi1-compatibility --disable-hwloc-pci
        make -j 32 2>&1|tee make.log
        make install -j 8 2>&1| tee make_install.log
        cd $OPENMPIROOT/bin
        if [ -e "mpicc" ]
                then
                echo "OPENMPI BUILD SUCCESSFUL"
        else
                echo "OPENMPI BUILD FAILED"
                exit 1
        fi
fi
###### Set the Compilation FLAGS ######
export CFLAGS="-O3 -march=$ARCH"
export CXXFLAGS="-O3 -march=$ARCH"
export FCFLAGS="-O3 -march=$ARCH"
export FFLAGS=$FCFLAGS
export PATH=$OPENMPIROOT/bin:$PATH
export LD_LIBRARY_PATH=$OPENMPIROOT/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=$OPENMPIROOT/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$OPENMPIROOT/include:$CPLUS_INCLUDE_PATH

echo "################### Building VASP ######################"

if [ -d $VASPROOT ];
        then
                echo "VASP - File Exists "
        else
                cd $SOURCES
                if [ ! -e "vasp.6.4.0.tgz" ]
                then
                echo "Please Download VASP"
                fi

                tar -xzvf vasp.6.4.0.tgz
                cd $VASPROOT
                cd $VASPROOT/src/fftlib
                clang++ -fopenmp -std=c++11 -I./include -I$AOCLROOT/include_LP64 -DFFTLIB_THREADSAFE -c src/fftlib.cpp
                cd $VASPROOT

                echo "createing the Makefile for VASP"
# $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
echo "########################################################################
CPP_OPTIONS= -DHOST=\\\"LinuxAMD\\\" -DMPI -DMPI_BLOCK=8000 -Duse_collective -DscaLAPACK -DCACHE_SIZE=4000 -Davoidalloc -Duse_bse_te -Dtbdyn -Dfock_dblbuf -Dvasp6 -D_OPENMP -Dshmem_bcast_buffer -Duse_shmem -Dsysv -Dfftw_cache_plans -Duse_fftw_plan_effort
#            -DPROFILING

CPP        = flang -E -P -C -w -Mfree \$*\$(FUFFIX) >\$*\$(SUFFIX) \$(CPP_OPTIONS)
FC         = mpif90 -fopenmp
FCL        = mpif90 ${VASPROOT}/src/fftlib/fftlib.o -fopenmp

FoREE       = -ffree-form -ffree-line-length-none
FFLAGS     = -w -march=$ARCH -fno-fortran-main \$(CPP_OPTIONS) -Mbackslash #-fallow-argument-mismatch
OFLAG      = -O3
DEBUG      = -O0


AOCLROOT   = ${AOCLROOT}
LIBDIR     = ${AOCLROOT}
BLAS       = ${AOCLROOT}/lib/libblis-mt.a
LAPACK     = ${AOCLROOT}/lib/libflame.so
BLACS      =
SCALAPACK  = ${AOCLROOT}/lib/libscalapack.a

LLIBS      = \$(SCALAPACK) \$(LAPACK) \$(BLAS) -lstdc++

FFTW       ?= ${AOCLROOT}

LLIBS      += -L\$(FFTW)/lib/ -lfftw3 -lfftw3_omp
INCS       = -I\$(FFTW)/include_LP64/ -I\$(FFTW)/include_LP64/

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

CPP_LIB    = \$(CPP)
FC_LIB     = \$(FC)
CC_LIB     = clang
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB   = \$(FREE)

OBJECTS_LIB= linpack_double.o getshmem.o
CXX_PARS   = clang++ -lstdc++
CXX_FFTLIB = clang++ -fopenmp -std=c++11 -DFFTLIB_THREADSAFE #-Duse_fftw_plan_effort

LLIBS      += -ldl -lstdc++
# ----------------------------------------------------------------------" > makefile.include

                cat makefile.include
                echo "starting make for vasp"
                cd ${VASPROOT}
                make std 2>&1|tee make.log
                cd build/std
                cd ..
                cd $VASPROOT/bin/
                if [ -e "vasp_std" ]
                then
                        echo "VASP Buil d SUCCESSFUL"
                else
                        echo "VASP Build FAILED"
                fi
fi

Post Reply