VASP: Difference between revisions

10 bytes added ,  4 years ago
no edit summary
No edit summary
No edit summary
Line 8: Line 8:


<!--T:3-->
<!--T:3-->
If you wish to use the pre-built VASP binaries on [[Cedar]] or [[Graham]], you must [[Technical support | write to us]] requesting access to VASP with the following information:  
If you wish to use the pre-built VASP binaries on [[Cedar]] and/or [[Graham]], you must contact [[Technical support]] requesting access to VASP with the following information:  
* Include license holder (your PI) information:
* Include license holder (your PI) information:
*# Name  
** Name  
*# Email address
** Email address
*# Department and institution (university).
** Department and institution (university)  
* Include license information:
* Include license information:
*# Indicate the version of VASP license ('''VASP version 4 or version 5''').
** Version of the VASP license ('''VASP version 4 or version 5''')
*# The '''license number'''.
** '''License number'''
*# Provide an up-to-date list of who is allowed to use your VASP license. For example, copy to us the most recent email from the VASP license administrator that contains the list of licensed users.
** Provide an up-to-date list of who is allowed to use your VASP license. For example, forward to us the most recent email from the VASP license administrator that contains the list of licensed users.


<!--T:4-->
<!--T:4-->
Line 24: Line 24:


<!--T:7-->
<!--T:7-->
Run <code>module spider vasp</code> to see what versions are available. Choose your version using <code>module load vasp/<version></code>. See [[Using modules]] for more.
# Run <code>module spider vasp</code> to see which versions are available.
# Choose your version and run <code>module spider vasp/<version></code> to see which dependencies you need to load for this particular version.
# Load the VASP module and the dependencies, for example:
module load nixpkgs/16.09 intel/2018.3 impi/2018.3.222 vasp/5.4.4
See [[Using modules]] for more.


=== Pseudopotential files === <!--T:8-->
=== Pseudopotential files === <!--T:8-->
Line 32: Line 36:


<!--T:10-->
<!--T:10-->
For VASP-4.6, there are three different executable files:  
For VASP-4.6, executable files are:  
* <code>vasp</code> for standard NVT calculations with non-gamma k-points  
* <code>vasp</code> for standard NVT calculations with non-gamma k-points  
* <code>vasp-gamma</code> is used for standard NVT calculation and only gamma-point
* <code>vasp-gamma</code> for standard NVT calculations with only gamma-points
* <code>makeparam</code> is used to estimate how much memory is required to run VASP for a particular system
* <code>makeparam</code> to estimate how much memory is required to run VASP for a particular cluster


<!--T:22-->
<!--T:22-->
For VASP-5.4.1, 5.4.4 (without cuda module), and 6.1.0 (without cuda module) there are three different executable files as well:
For VASP-5.4.1, 5.4.4 and 6.1.0 (without CUDA support), executable files are:
* <code>vasp_std</code> for standard NVT calculation and non-gamma k-points
* <code>vasp_std</code> for standard NVT calculations with non-gamma k-points
* <code>vasp_gam</code> for standard NVT calculation and only gamma-point
* <code>vasp_gam</code> for standard NVT calculations with only gamma-points
* <code>vasp_ncl</code> for NPT ensemble and non-gamma-point calculations
* <code>vasp_ncl</code> for NPT calculations with non-gamma k-points


<!--T:24-->
<!--T:24-->
For VASP-5.4.4 and 6.1.0 with cuda module  there are two different executable files as well:
For VASP-5.4.4 and 6.1.0 (with CUDA support), executable files are:
* <code>vasp_gpu</code> for standard NVT calculation gamma and non-gamma k-point
* <code>vasp_gpu</code> for standard NVT calculations with gamma and non-gamma k-points
* <code>vasp_gpu_ncl</code> for NPT ensemble and both, gamma and non-gamma-point calculations
* <code>vasp_gpu_ncl</code> for NPT calculations with gamma and non-gamma k-points


<!--T:23-->
<!--T:23-->
Line 57: Line 61:


== Vasp-GPU == <!--T:25-->
== Vasp-GPU == <!--T:25-->
Vasp-GPU executable files run on both GPU and CPU of a node. Basically calculation on GPU of a node is much more expensive than CPU, therefore we highly recommend to perform a benchmark using one or 2 GPU to make sure they are using maximum GPU utilization. Fig.1 show a benchmark of Si crystal contains 256 Si-atoms in the unit-cell. Blue, black and red lines show simulation time as a function of Number of CPU for GPU=0, 1, and 2 respectively. It shows the performance for GPU=1,2 and CPU=1 is more than 5 times better compare to GPU=0 and CPU=1. However, a comparison between calculation with GPU=1 and GPU=2 indicates that there is not much performance gain from GPU=1 to GPU=2. In fact GPU utilization for GPU=2 is around 50% in our monitoring system. Therefore we recommend users to first perform a benchmark like this for their own system to make sure they are not wasting any computer resources.
Vasp-GPU executable files run on both GPUs and CPUs of a node. Basically, calculation on a GPU is much more expensive than on a CPU, therefore we highly recommend to perform a benchmark using one or 2 GPUs to make sure they are getting a maximum performance from the GPU use. Fig.1 shows a benchmark of Si crystal which contains 256 Si-atoms in the unit-cell. Blue, black and red lines show simulation time as a function of Number of CPU for GPU=0, 1, and 2 respectively. It shows the performance for GPU=1,2 and CPU=1 is more than 5 times better compared to GPU=0 and CPU=1. However, a comparison of calculations with GPU=1 and GPU=2 indicates that there is not much performance gain from GPU=1 to GPU=2. In fact, use for GPU=2 is around 50% in our monitoring system. Therefore we recommend users to first perform a benchmark like this for their own system to make sure they are not wasting any computer resources.


<!--T:26-->
<!--T:26-->
[[File:Vasp-GPU-benchmark.pdf|thumb|Fig.1 Simulation time as a function of number of CPU for GPU=0, 1, and 2]]
[[File:Vasp-GPU-benchmark.pdf|thumb|Fig.1 Simulation time as a function of number of CPUs for GPU=0, 1, and 2]]


== Building VASP yourself == <!--T:12-->
== Building VASP yourself == <!--T:12-->


<!--T:13-->
<!--T:13-->
If you are licensed to use VASP you may download the source code from the [https://www.vasp.at/ VASP web site] and build custom versions. See [[Installing software in your home directory]] and [http://cms.mpi.univie.ac.at/wiki/index.php/Installing_VASP Installing VASP].
If you are licensed to use VASP you may download the source code from the [https://www.vasp.at/ VASP website] and build custom versions. See [[Installing software in your home directory]] and [http://cms.mpi.univie.ac.at/wiki/index.php/Installing_VASP Installing VASP].


== Example of a VASP job script == <!--T:15-->
== Example of a VASP job script == <!--T:15-->
Line 82: Line 86:
#SBATCH --mem-per-cpu=1024M    # memory
#SBATCH --mem-per-cpu=1024M    # memory
#SBATCH --time=0-00:05        # time (DD-HH:MM)
#SBATCH --time=0-00:05        # time (DD-HH:MM)
module load vasp/<VERSION>
module load nixpkgs/16.09 intel/2018.3 impi/2018.3.222 vasp/5.4
srun <VASP>
srun <VASP>
}}
}}
Line 88: Line 92:
<!--T:18-->
<!--T:18-->
*The above job script requests four CPU cores and 4096MB memory (4x1024MB).
*The above job script requests four CPU cores and 4096MB memory (4x1024MB).
*<ACCOUNT> is a Slurm account name; see [[Running_jobs#Accounts_and_projects|Accounts and projects]] if you don't know what to put there.
*<ACCOUNT> is a Slurm account name; see [[Running_jobs#Accounts_and_projects|Accounts and projects]] to know what to enter there.
*<VERSION> is the VASP version that you would like to run, 4.6, 5.4.1, 5.4.4 or 6.1.0.
*<VASP> is the name of the executable. Refer to section "Executable programs" for the executables you can select for each version.  
*<VASP> is the name of the executable. The above section "Executable programs" shows the various executables that you can choose for each version.  


<!--T:27-->
<!--T:27-->
Line 109: Line 112:
<!--T:28-->
<!--T:28-->
*The above job script requests one CPU core and 1024MB memory.
*The above job script requests one CPU core and 1024MB memory.
*The above job script requests one GPU type p100 which is only available on Cedar. For other machines, please see the [[Using GPUs with Slurm#Available_hardware|GPU types available]].  
*The above job script requests one GPU type p100 which is only available on Cedar. For other clusters, please see the [[Using GPUs with Slurm#Available_hardware|GPU types available]].  
*The above job uses <code>mpiexec</code> to run vasp.
*The above job uses <code>mpiexec</code> to run VASP.


<!--T:19-->
<!--T:19-->
VASP uses four input files named as: INCAR, KPOINTS, POSCAR, POTCAR. It is best to prepare VASP input files in a separate directory for each job. To submit the job from that directory, use:
VASP uses four input files named as INCAR, KPOINTS, POSCAR, POTCAR. It is best to prepare VASP input files in a separate directory for each job. To submit the job from that directory, use:
  sbatch vasp_job.sh
  sbatch vasp_job.sh


<!--T:20-->
<!--T:20-->
If you do not know how much memory you need for your job, prepare all your input files and then run <code>makeparam</code> in an [[Running_jobs#Interactive_jobs|interactive job submission]]. Then use the result as required memory for the next run. However, for a more accurate estimate for future jobs, check the maximum stack size used by [[Running_jobs#Completed_jobs|completed jobs]], and use this as the memory requirement per processor for the next job.
If you do not know how much memory you need for your job, prepare all your input files and then run <code>makeparam</code> in an [[Running_jobs#Interactive_jobs|interactive job submission]]. Then use the result as required memory for the next run. However, for a more accurate estimate for future jobs, check the maximum stack size used by [[Running_jobs#Completed_jobs|completed jobs]] and use this as the memory requirement per processor for the next job.


<!--T:21-->
<!--T:21-->
rsnt_translations
56,420

edits