HPC/Applications/vasp: Difference between revisions

From CNM Wiki
Jump to navigation Jump to search
m (integrate vasp5 and back-port multi-name binaries)
Line 25: Line 25:
  …
  …


== Versions ==
== Module considerations ==
 
* Review the available modules for each major version:
* Review the available minor versions:
** [[HPC/Software/Modules#vasp | vasp]], for VASP 4.x
** [[HPC/Software/Modules#vasp | VASP-4]]
** [[HPC/Software/Modules#vasp5 | vasp5]], for VASP 5.x
** [[HPC/Software/Modules#vasp5 | VASP-5]]
* Choose and [[HPC/Software/Module Setup#Shell Customizations|add '''one''' of the following lines to your ~/.bashrc]] file:
* Choose and [[HPC/Software/Module Setup#Shell Customizations|add '''one''' of the following lines to your ~/.bashrc]] file:
  module load vasp                # sets '''$VASP_HOME'''
  module load vasp                # sets '''$VASP_HOME'''
  module load vasp-vtst          # sets '''$VASP_VTST_HOME'''
  <font color="grey"><strike>module load vasp-vtst          # sets '''$VASP_VTST_HOME'''</strike>  Obsolete; now included in vasp and vasp5</font>
  module load vasp5              # sets '''$VASP5_HOME'''
  module load vasp5              # sets '''$VASP5_HOME'''
: Each module points to an installation directory using an [[HPC/Software/Module Setup#Package home directories|environment variable corresponding to the module name]]. Do not hardcode the directory anywhere, as that location is determined by the module and may change in subsequent versions. There should not be a reason to do so, since <code>$PATH</code> will be managed appropriately.
: Each module points to an installation directory using an [[HPC/Software/Module Setup#Package home directories|environment variable corresponding to the module name]]. Do not hardcode the directory anywhere, as that location is determined by the module and may change in subsequent versions. There should not be a reason to do so, since <code>$PATH</code> will be managed appropriately.
* Each module provides two binaries:
 
*; <code>vasp</code>: supports '''''k'''''-points, full complex arithmetic.
* Each module provides several binaries (see [[#Available Binaries|next section]]).
*; <code>vasp-gamma</code>: '''&Gamma;'''-point only (compiled with [http://cms.mpi.univie.ac.at/vasp/vasp/NGXhalf_NGZhalf.html NGZhalf] and [http://cms.mpi.univie.ac.at/vasp/vasp/wNGXhalf_wNGZhalf.html wNGZhalf])
* Since the binaries' names are the same for all modules, the modules are mutually exclusive, or at least only the last one loaded will be active.
* You do not need to specify a path for vasp for the mpirun statement in the PBS job script.
* You do not need to specify a path for vasp for the mpirun statement in the PBS job script.
* The modules are mutually exclusive.
* Potentials are available in <code>/opt/soft/vasp-pot</code>.
* Potentials are available in <code>/opt/soft/vasp-pot</code>.
* A sample PBS job file is at <code>$VASP_HOME/vasp.job</code> (or the respective <code>$..._HOME</code> variable.)
* A sample PBS job file is at <code>$VASP_HOME/vasp.job</code> or <code>$VASP5_HOME/vasp.job</code>  


In addition to VASP, there is an [[HPC/Software/Modules#vasp-vtstscripts|additional module with Graeme Henkelman's script suite]], which you can use with any of the above-mentioned vasp flavors:
In addition to VASP, there is an [[HPC/Software/Modules#vasp-vtstscripts|additional module with Graeme Henkelman's script suite]], which you can use with any of the above-mentioned vasp flavors:


  module load vasp-vtstscripts
  module load vasp-vtstscripts
== Available Binaries ==
Some options for VASP cannot be configured at runtime (by input data) but must be chosen when compiling.
Since no single set of compile-time choices is appropriate for all uses, a number of binaries are provided, distinguished by their name.
The modules from versions vasp/4.6.35-mkl-13 and vasp5/5.2.12a-mkl-4 onwards, respectively,
contain several binaries built using different sets of preprocessor flags in the Makefile.
Earlier modules only contain two binaries, <code>vasp</code> and <code>vasp-gamma</code>.
Additional binaries are provided for useful preprocessor flag combinations
after applying patches from the group of Graeme Henkelman (UT Austin) to the source code:
* [http://theory.cm.utexas.edu/vtsttools/ Transition state tools for VASP], and
* [http://theory.cm.utexas.edu/vtsttools/bader/ DOS Projection in Bader Volumes].
To verify the binaries available for a module, run the appropriate command, once the module has been loaded:
ls $VASP_HOME/bin
ls $VASP5_HOME/bin
=== Available binaries and their flags ===
<!--
sed -n '/DMPI_BLOCK/s/.*"//p' embody-5.2.12a-mkl-4/build.log  | uniq
sed -n '/DMPI_BLOCK/s/.*8000//p' embody-5.2.12a-mkl-4/build.log  | uniq
-->
This table lists the names of the binaries compiled from
* combinations of preprocessor flags, and
* variants of the source code, primarily enhancing capabilities of ionic updates.
Choose a binary appropriate for your task and pass its name to <code>mpirun</code> in the job script.
There is no need for full path names.
Copy a sample job script from:
$VASP5_HOME/vasp.job
{| class="wikitable" cellpadding="5" style="text-align:left; font-family: monospace;"
|- style="background:#e4e4e4; text-align:center; font-weight: bold; font-family: sans-serif;"
| rowspan="2" | MD capabilities
| rowspan="2" | Flags used
| colspan="3" align="center" | Binary name
|- style="background:#e4e4e4; text-align:center; font-weight: bold; font-family: sans-serif;"
| Official source
| [http://theory.cm.utexas.edu/vtsttools/downloads/ Patched for VTST]
| [http://theory.cm.utexas.edu/vtsttools/dos/ Patched for Bader-projected DOS]
|-
! rowspan="4" style="background:#e4e4e4; font-family: sans-serif;" | Conventional
| style="background:#e4e4e4;" | (none)
| style="background:none;" | '''vasp'''
| style="background:#ded;" | '''vasp-vtst'''
| style="background:#fee;" | '''vasp-baderdos'''
|-
| style="background:#e4e4e4;" | -DNGZhalf
| style="background:none;" | '''vasp-chargehalf'''
| style="background:#ded;" | '''vasp-vtst-chargehalf'''
| style="background:#fee;" | '''vasp-baderdos-chargehalf'''
|-
| style="background:#e4e4e4;" | -DwNGZhalf
| style="background:none;" | '''vasp-gamma'''
| style="background:#ded;" | '''vasp-vtst-gamma'''
| style="background:#fee;" | '''vasp-baderdos-gamma'''
|-
| style="background:#e4e4e4;" | -DwNGZhalf -DNGZhalf
| style="background:none;" | '''vasp-gamma-chargehalf'''
| style="background:#ded;" | '''vasp-vtst-gamma-chargehalf'''
| style="background:#fee;" | '''vasp-baderdos-gamma-chargehalf'''
|-
! rowspan="4" style="background:#e4e4e4; font-family: sans-serif;" | [http://cms.mpi.univie.ac.at/vasp/vasp/Advanced_MD_techniques.html Advanced<br>MD techniques] (vasp5 only)
| style="background:#e4e4e4;" | -Dtbdyn
| style="background:#ddf;" | '''vasp-tbdyn'''
| rowspan="4" style="background:#f0f0f0; text-align:center; font-style:oblique; font-family: sans-serif;" | not useful
| rowspan="4" style="background:#f0f0f0; text-align:center; font-style:oblique; font-family: sans-serif;" | not useful
|-
| style="background:#e4e4e4;" | -Dtbdyn -DNGZhalf
| style="background:#ddf;" | '''vasp-tbdyn-chargehalf'''
|-
| style="background:#e4e4e4;" | -Dtbdyn -DwNGZhalf
| style="background:#ddf;" | '''vasp-tbdyn-gamma'''
|-
| style="background:#e4e4e4;" | -Dtbdyn -DwNGZhalf -DNGZhalf
| style="background:#ddf;" | '''vasp-tbdyn-gamma-chargehalf'''
|}
=== Explanantion of flags ===
From file <code>vasp.5.2/makefile.linux_pg</code> in the souce code.
<pre>
#-----------------------------------------------------------------------
# possible options for CPP:
# NGXhalf            charge density  reduced in X direction
# wNGXhalf            gamma point only reduced in X direction
# avoidalloc          avoid ALLOCATE if possible
# IFC                work around some IFC bugs
# CACHE_SIZE          1000 for PII,PIII, 5000 for Athlon, 8000 P4
# RPROMU_DGEMV        use DGEMV instead of DGEMM in RPRO (usually  faster)
# RACCMU_DGEMV        use DGEMV instead of DGEMM in RACC (faster on P4)
#  **** definitely use -DRACCMU_DGEMV if you use the mkl library
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
# additional options for CPP in parallel version (see also above):
# NGZhalf              charge density  reduced in Z direction
# wNGZhalf              gamma point only reduced in Z direction
# scaLAPACK            use scaLAPACK (usually slower on 100 Mbit Net)
#-----------------------------------------------------------------------
</pre>
=== Common flags ===
-DIFC -DRPROMU_DGEMV  -DRACCMU_DGEMV -DCACHE_SIZE=16000  -DMPI -DMPI_BLOCK=8000
== vdW-DF functional ==
All binaries support the use of the [http://cms.mpi.univie.ac.at/vasp/vasp/vdW_DF_functional_Langreth_Lundqvist_et_al.html vdW-DF functional of Langreth and Lundqvist et al.]
No specific preparations are needed other than setting the INCAR flags as documented. The binaries will find the required precalculated kernel  file <code>vdw_kernel.bindat</code> by means of the environment variable <code>$VASP5_HOME</code> which is set by the module. This is a Carbon-specific extension.


== Node resources for VASP ==
== Node resources for VASP ==

Revision as of 22:33, March 21, 2012

Requesting Access

Both VASP-4 and VASP-5 major versions are available on Carbon, and require a license. VASP-5 is a separate license, which includes access to VASP-4 and potpaw_PBE potentials.

You are welcome to use the Carbon binaries, but I (stern) need written or emailed confirmation of your license status. Please kindly ask the vaspmaster to confirm to me that you hold or are covered by a license. You may wish to use the following template.

To: [email protected]
CC: [email protected]
Subject: License confirmation
We are users of the Center for Nanoscale Materials at Argonne National Laboratory.
We would like to use the VASP installation at this site.

Please reply and confirm to Michael Sternberg <[email protected]> that we hold the license numbers

VASP-4   …
VASP-5   …

with the following people in my research group:

…
…


With best regards,
…

Module considerations

module load vasp                # sets $VASP_HOME
module load vasp-vtst           # sets $VASP_VTST_HOME  Obsolete; now included in vasp and vasp5
module load vasp5               # sets $VASP5_HOME
Each module points to an installation directory using an environment variable corresponding to the module name. Do not hardcode the directory anywhere, as that location is determined by the module and may change in subsequent versions. There should not be a reason to do so, since $PATH will be managed appropriately.
  • Each module provides several binaries (see next section).
  • You do not need to specify a path for vasp for the mpirun statement in the PBS job script.
  • The modules are mutually exclusive.
  • Potentials are available in /opt/soft/vasp-pot.
  • A sample PBS job file is at $VASP_HOME/vasp.job or $VASP5_HOME/vasp.job

In addition to VASP, there is an additional module with Graeme Henkelman's script suite, which you can use with any of the above-mentioned vasp flavors:

module load vasp-vtstscripts

Available Binaries

Some options for VASP cannot be configured at runtime (by input data) but must be chosen when compiling. Since no single set of compile-time choices is appropriate for all uses, a number of binaries are provided, distinguished by their name.

The modules from versions vasp/4.6.35-mkl-13 and vasp5/5.2.12a-mkl-4 onwards, respectively, contain several binaries built using different sets of preprocessor flags in the Makefile. Earlier modules only contain two binaries, vasp and vasp-gamma. Additional binaries are provided for useful preprocessor flag combinations after applying patches from the group of Graeme Henkelman (UT Austin) to the source code:

To verify the binaries available for a module, run the appropriate command, once the module has been loaded:

ls $VASP_HOME/bin
ls $VASP5_HOME/bin

Available binaries and their flags

This table lists the names of the binaries compiled from

  • combinations of preprocessor flags, and
  • variants of the source code, primarily enhancing capabilities of ionic updates.

Choose a binary appropriate for your task and pass its name to mpirun in the job script. There is no need for full path names. Copy a sample job script from:

$VASP5_HOME/vasp.job
MD capabilities Flags used Binary name
Official source Patched for VTST Patched for Bader-projected DOS
Conventional (none) vasp vasp-vtst vasp-baderdos
-DNGZhalf vasp-chargehalf vasp-vtst-chargehalf vasp-baderdos-chargehalf
-DwNGZhalf vasp-gamma vasp-vtst-gamma vasp-baderdos-gamma
-DwNGZhalf -DNGZhalf vasp-gamma-chargehalf vasp-vtst-gamma-chargehalf vasp-baderdos-gamma-chargehalf
Advanced
MD techniques
(vasp5 only)
-Dtbdyn vasp-tbdyn not useful not useful
-Dtbdyn -DNGZhalf vasp-tbdyn-chargehalf
-Dtbdyn -DwNGZhalf vasp-tbdyn-gamma
-Dtbdyn -DwNGZhalf -DNGZhalf vasp-tbdyn-gamma-chargehalf

Explanantion of flags

From file vasp.5.2/makefile.linux_pg in the souce code.

#-----------------------------------------------------------------------
# possible options for CPP:
# NGXhalf             charge density   reduced in X direction
# wNGXhalf            gamma point only reduced in X direction
# avoidalloc          avoid ALLOCATE if possible
# IFC                 work around some IFC bugs
# CACHE_SIZE          1000 for PII,PIII, 5000 for Athlon, 8000 P4
# RPROMU_DGEMV        use DGEMV instead of DGEMM in RPRO (usually  faster)
# RACCMU_DGEMV        use DGEMV instead of DGEMM in RACC (faster on P4)
#  **** definitely use -DRACCMU_DGEMV if you use the mkl library
#-----------------------------------------------------------------------
…
#-----------------------------------------------------------------------
# additional options for CPP in parallel version (see also above):
# NGZhalf               charge density   reduced in Z direction
# wNGZhalf              gamma point only reduced in Z direction
# scaLAPACK             use scaLAPACK (usually slower on 100 Mbit Net)
#-----------------------------------------------------------------------

Common flags

-DIFC -DRPROMU_DGEMV  -DRACCMU_DGEMV -DCACHE_SIZE=16000  -DMPI -DMPI_BLOCK=8000

vdW-DF functional

All binaries support the use of the vdW-DF functional of Langreth and Lundqvist et al.

No specific preparations are needed other than setting the INCAR flags as documented. The binaries will find the required precalculated kernel file vdw_kernel.bindat by means of the environment variable $VASP5_HOME which is set by the module. This is a Carbon-specific extension.

Node resources for VASP

Consider the follwing to specify PBS node resources (in job files and on the qsub command line).

Single-node jobs

  • When on gen1 nodes use ppn=4 and disallow sharing
#PBS -l nodes=1:ppn=4:gen1
#PBS -l naccesspolicy=SINGLEJOB
  • When on gen2, use ppn=7 or 8
#PBS -l nodes=1:ppn=8:gen2

Multi-node jobs

Run on gen2 only, by using the following options for qsub or #PBS:

#PBS -l nodes=__:ppn=__:gen2

See also