Installing VASP.6.X.X: Difference between revisions

From VASP Wiki
No edit summary
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
As a [https://vasp.at| license holder], you can download the source code of VASP from the [https://vasp.at| VASP Portal]. If your system fulfills the [[#Requirements | requirements]], you can install VASP.6.X.X by following the steps [[#Install VASP|below]].
As a [https://vasp.at| license holder], you can download the source code of VASP from the [https://vasp.at| VASP Portal]. If your system fulfills the [[#Requirements | requirements]], you can install VASP.6.X.X by following the [[#Install VASP|steps below]]. There is a separate [[Installing_VASP.5.X.X|guide to installing VASP.5.X.X]].
== Requirements ==
== Requirements ==


For the compilation of VASP one needs:
For the compilation of VASP one needs:


* Compilers for Fortran (at least F2008 compliant), C, and C++. For instance, one of the following:
* Compilers for Fortran (at least F2008 compliant), C, and C++. For instance, one of the following compiler suites:
:: [https://gcc.gnu.org gcc]
:- [https://gcc.gnu.org gcc]
:: [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#base-kit intel-oneapi-base-kit]+[https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#hpc-kit intel-oneapi-hpc-kit]
:- [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#base-kit intel-oneapi-base-kit]+[https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#hpc-kit intel-oneapi-hpc-kit]
:: [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK]
:- [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK]
:: [https://developer.amd.com/amd-aocc AOCC]
:- [https://developer.amd.com/amd-aocc AOCC] (for AMD CPUs)
{{NB|mind| For the [[OpenACC GPU port of VASP]] (to run on GPUs) on must use the compilers from the [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (>{{=}}21.2).|:}}


* Numerical libraries: FFTW, BLAS, LAPACK, and ScaLAPACK. For instance, one of the following:
* Numerical libraries: FFTW, BLAS, LAPACK, and ScaLAPACK. For instance, one of the following:
:: [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#base-kit intel-oneapi-base-kit intel-oneapi-mkl]
:- [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#base-kit intel-oneapi-mkl]
:: [http://www.fftw.org FFTW], [https://www.openblas.net OpenBLAS], [http://www.netlib.org/scalapack ScaLAPACK]
:- [http://www.fftw.org FFTW] + [https://www.openblas.net OpenBLAS] + [http://www.netlib.org/scalapack ScaLAPACK]
:: [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (comes with OpenBLAS and ScaLAPACK but does not provide FFTW)
:- [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (comes with OpenBLAS and ScaLAPACK) + [http://www.fftw.org FFTW]
:: [https://developer.amd.com/amd-aocl AOCL]
:- [https://developer.amd.com/amd-aocl AOCL] (for AMD CPUs)


* An implementation of the Message Passing Interface (MPI). For instance, one of the follwing:
* An implementation of the Message Passing Interface (MPI). For instance, one of the following:
:: [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#hpc-kit intel-oneapi-mpi]
:- [https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#hpc-kit intel-oneapi-mpi]
:: [https://www.open-mpi.org OpenMPI]
:- [https://www.open-mpi.org OpenMPI]
:: [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (comes with OpenMPI)
:- [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (comes with OpenMPI)


For the [[OpenACC GPU port of VASP]] (to run on GPUs):
To find a combination of compilers and libraries that works, have a look at [[Toolchains|our list of validated toolchains]]. On a personal computer, i.e., your desktop machine or laptop, you may use [[Personal computer installation|these validated instructions]].
* [https://developer.nvidia.com/hpc-sdk NVIDIA HPC-SDK] (>=21.2).
 
To find a combination of compilers and libraries that works, have a look at [[Toolchains|our list of validated toolchains]].


== Install VASP ==
== Install VASP ==
Line 31: Line 29:
:Download the source code of VASP from the [https://vasp.at| VASP Portal], copy it to the desired location on your machine, and unzip the file to obtain the folder <code>/path/to/vasp.x.x.x</code> and reveal [[#Subdirectories in vasp.6.x.x|its content]].
:Download the source code of VASP from the [https://vasp.at| VASP Portal], copy it to the desired location on your machine, and unzip the file to obtain the folder <code>/path/to/vasp.x.x.x</code> and reveal [[#Subdirectories in vasp.6.x.x|its content]].


=== Step 2: Prepare makefile.include ===  
=== Step 2: Prepare [[makefile.include]] ===  


:Create a makefile.include starting from a template in <code>/path/to/vasp.x.x.x/arch</code> that resembles your system:
:Create a makefile.include starting from a template in <code>/path/to/vasp.x.x.x/arch</code> that resembles your system:
Line 45: Line 43:
: <pre>make DEPS=1 -jN <target></pre>
: <pre>make DEPS=1 -jN <target></pre>


:where <code> DEPS=1 -jN</code> is optional and selects the parallel mode of make with <code>N</code> being the number of jobs you want to run, and <code><target></code> corresponds to <code>std</code>, <code>gam</code>, <code>ncl</code> or  <code>all</code>. This builds the standard, gamma-only, non-collinear or all versions of VASP. The executables are <code>vasp_std</code>, <code>vasp_gam</code>, and <code>vasp_ncl</code>, respectively, which are located at <code>/path/to/vasp.X.X.X/bin/</code>.
:where <code> DEPS=1 -jN</code> is optional and selects the parallel mode of make with <code>N</code> being the number of jobs you want to run, and <code><target></code> corresponds to <code>std</code>, <code>gam</code>, <code>ncl</code> or  <code>all</code>. This builds the standard, gamma-only, noncollinear or all versions of VASP. The executables are <code>vasp_std</code>, <code>vasp_gam</code>, and <code>vasp_ncl</code>, respectively, which are located at <code>/path/to/vasp.X.X.X/bin/</code>.


=== Step 4: Test ===   
=== Step 4: Test ===   
Line 61: Line 59:
: <pre>export PATH=$PATH:/path/to/vasp.x.x.x/bin</pre>
: <pre>export PATH=$PATH:/path/to/vasp.x.x.x/bin</pre>


:for instance in your <code>~/.bashrc</code>.  
:for instance in your <code>~/.bashrc</code>.


== Subdirectories in vasp.6.x.x ==
== Subdirectories in vasp.6.x.x ==
Line 88: Line 86:
;/path/to/vasp.x.x.x/src/parser
;/path/to/vasp.x.x.x/src/parser
:Holds the source of the {{TAG|LOCPROJ}} parser (as of versions >= 5.4.4) and a low-level makefile.
:Holds the source of the {{TAG|LOCPROJ}} parser (as of versions >= 5.4.4) and a low-level makefile.
;/path/to/vasp.x.x.x/src/CUDA
:Used to hold the source of the CUDA-C code that will be executed on the GPU by the [[CUDA-C GPU port of VASP]].


;/path/to/vasp.x.x.x/src/fftlib
;/path/to/vasp.x.x.x/src/fftlib
Line 119: Line 114:


----
----
[[The_VASP_Manual|Contents]]


[[Category:VASP]]
[[Category:VASP]]
Line 125: Line 119:
[[Category:Performance]]
[[Category:Performance]]
[[Category:GPU]]
[[Category:GPU]]
[[Category:VASP6]]

Latest revision as of 06:28, 21 February 2024

As a license holder, you can download the source code of VASP from the VASP Portal. If your system fulfills the requirements, you can install VASP.6.X.X by following the steps below. There is a separate guide to installing VASP.5.X.X.

Requirements

For the compilation of VASP one needs:

  • Compilers for Fortran (at least F2008 compliant), C, and C++. For instance, one of the following compiler suites:
- gcc
- intel-oneapi-base-kit+intel-oneapi-hpc-kit
- NVIDIA HPC-SDK
- AOCC (for AMD CPUs)
Mind: For the OpenACC GPU port of VASP (to run on GPUs) on must use the compilers from the NVIDIA HPC-SDK (>=21.2).
  • Numerical libraries: FFTW, BLAS, LAPACK, and ScaLAPACK. For instance, one of the following:
- intel-oneapi-mkl
- FFTW + OpenBLAS + ScaLAPACK
- NVIDIA HPC-SDK (comes with OpenBLAS and ScaLAPACK) + FFTW
- AOCL (for AMD CPUs)
  • An implementation of the Message Passing Interface (MPI). For instance, one of the following:
- intel-oneapi-mpi
- OpenMPI
- NVIDIA HPC-SDK (comes with OpenMPI)

To find a combination of compilers and libraries that works, have a look at our list of validated toolchains. On a personal computer, i.e., your desktop machine or laptop, you may use these validated instructions.

Install VASP

Step 1: Download

Download the source code of VASP from the VASP Portal, copy it to the desired location on your machine, and unzip the file to obtain the folder /path/to/vasp.x.x.x and reveal its content.

Step 2: Prepare makefile.include

Create a makefile.include starting from a template in /path/to/vasp.x.x.x/arch that resembles your system:
cp arch/makefile.include.your_choice  ./makefile.include
Adapt your makefile.include file to your system and select optional features.

Step 3: Make

Build VASP with
make DEPS=1 -jN <target>
where DEPS=1 -jN is optional and selects the parallel mode of make with N being the number of jobs you want to run, and <target> corresponds to std, gam, ncl or all. This builds the standard, gamma-only, noncollinear or all versions of VASP. The executables are vasp_std, vasp_gam, and vasp_ncl, respectively, which are located at /path/to/vasp.X.X.X/bin/.

Step 4: Test

Warning: VASP.6.1.0, VASP.6.1.1, and VASP.6.1.2 have a potentially serious issue related to the test suite. Please read about it here.
Run the test suite with
make test
to confirm the build was successful.
Tip: If there are issues, the VASP Forum [installation issues] is the appropriate place to seek support.

Step 5: Install

Copy the executables to the system $PATH or append /path/to/vasp.x.x.x/bin/ to the environment variable with
export PATH=$PATH:/path/to/vasp.x.x.x/bin
for instance in your ~/.bashrc.

Subdirectories in vasp.6.x.x

The build system of VASP (as of versions >= 5.4.1) comprises the following subdirectories:

                  vasp.x.x.x (root directory)
                               |
         ------------------------------------------------
        |        |        |         |          |         |
       arch     bin     build      src     testsuite   tools
                                    |
                              -------------
                             |      |      |       
                            lib   parser  fftlib
/path/to/vasp.x.x.x/
Holds the high-level makefile and several subdirectories.
/path/to/vasp.x.x.x/src
Holds the source files of VASP and a low-level makefile.
/path/to/vasp.x.x.x/src/lib
Holds the source of the VASP library (used to be vasp.X.lib) and a low-level makefile.
/path/to/vasp.x.x.x/src/parser
Holds the source of the LOCPROJ parser (as of versions >= 5.4.4) and a low-level makefile.
/path/to/vasp.x.x.x/src/fftlib
Holds the source of the fftlib library that may be used to cache fftw plans.
/path/to/vasp.x.x.x/arch
Holds a collection of makefile.include.* files.
/path/to/vasp.x.x.x/build
The different versions of VASP, i.e., the standard, gamma-only, non-collinear versions will be built in separate subdirectories of this directory.
/path/to/vasp.x.x.x/bin
Here make will store the executables.
/path/to/vasp.x.x.x/testsuite
Holds a suite of correctness tests to check your build.
/path/to/vasp.x.x.x/tools
Holds several python scripts related to the use of HDF5 input/output files.

Related sections

Toolchains, makefile.include, Precompiler options, Compiler options, Linking to libraries, Validation tests