Installing VASP on RedHat and AMD EPYC 7313
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 20
- Joined: Wed Sep 21, 2022 6:52 pm
Installing VASP on RedHat and AMD EPYC 7313
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
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
-
- Global Moderator
- Posts: 460
- Joined: Mon Nov 04, 2019 12:44 pm
Re: Installing VASP on RedHat and AMD EPYC 7313
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
Please have a look at our wiki documentation on installation:
https://www.vasp.at/wiki/index.php/Inst ... VASP.6.X.X
-
- Newbie
- Posts: 20
- Joined: Wed Sep 21, 2022 6:52 pm
Re: Installing VASP on RedHat and AMD EPYC 7313
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.
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.
-
- Global Moderator
- Posts: 460
- Joined: Mon Nov 04, 2019 12:44 pm
Re: Installing VASP on RedHat and AMD EPYC 7313
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.
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.
-
- Newbie
- Posts: 1
- Joined: Fri Sep 18, 2020 12:59 pm
Re: Installing VASP on RedHat and AMD EPYC 7313
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.
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