Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
technical:recipes:vasp-6-darwin [2021-02-15 11:45] – frey | technical:recipes:vasp-6-darwin [2021-02-16 10:00] (current) – [Runtime environment] anita | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Building VASP 6 on Caviness/ | ====== Building VASP 6 on Caviness/ | ||
- | Over the years the VASP build system has changed significantly. | + | Over the years the VASP build system has changed significantly. |
The build procedure outlined herein uses Open MPI on top of the Intel compiler suite in conjunction with CUDA 11 with the target executable destined for use on Volta- and Turing-generation NVIDIA devices. | The build procedure outlined herein uses Open MPI on top of the Intel compiler suite in conjunction with CUDA 11 with the target executable destined for use on Volta- and Turing-generation NVIDIA devices. | ||
Line 9: | Line 9: | ||
To begin, choose a directory in which the VASP version(s) will be built and installed. | To begin, choose a directory in which the VASP version(s) will be built and installed. | ||
<code bash> | <code bash> | ||
- | [user@login00.darwin ~]$ export | + | [user@login00.darwin ~]$ VASP_BASEDIR=~/ |
[user@login00.darwin ~]$ VASP_BASEDIR_PRIVS=0700 | [user@login00.darwin ~]$ VASP_BASEDIR_PRIVS=0700 | ||
</ | </ | ||
If you are managing VASP software for your entire workgroup, you could instead use | If you are managing VASP software for your entire workgroup, you could instead use | ||
<code bash> | <code bash> | ||
- | [user@login00.darwin ~]$ export | + | [user@login00.darwin ~]$ VASP_BASEDIR=" |
[user@login00.darwin ~]$ VASP_BASEDIR_PRIVS=2770 | [user@login00.darwin ~]$ VASP_BASEDIR_PRIVS=2770 | ||
</ | </ | ||
Line 156: | Line 156: | ||
==== Build Environment ==== | ==== Build Environment ==== | ||
- | The '' | + | The '' |
<code bash> | <code bash> | ||
[user@login00.darwin src]$ vpkg_rollback all | [user@login00.darwin src]$ vpkg_rollback all | ||
Line 226: | Line 226: | ||
</ | </ | ||
- | The '' | + | The '' |
The '' | The '' | ||
Line 234: | Line 234: | ||
With this version of VASP built, the remaining step is to leverage VALET for setup of the runtime environment when you use the software. | With this version of VASP built, the remaining step is to leverage VALET for setup of the runtime environment when you use the software. | ||
<code bash> | <code bash> | ||
+ | [user@login00.darwin src]$ vpkg_rollback all | ||
[user@login00.darwin src]$ cd | [user@login00.darwin src]$ cd | ||
[user@login00.darwin ~]$ echo $VASP_BASEDIR | [user@login00.darwin ~]$ echo $VASP_BASEDIR | ||
Line 242: | Line 243: | ||
[user@login00.darwin ~]$ VALET_PKG_DIR=~/ | [user@login00.darwin ~]$ VALET_PKG_DIR=~/ | ||
</ | </ | ||
- | versus an installation made for an entire workgroup, which would store package definition files in '' | + | versus an installation made for an entire workgroup, which would store the VALET package definition files in '' |
<code bash> | <code bash> | ||
[user@login00.darwin ~]$ VALET_PKG_DIR=" | [user@login00.darwin ~]$ VALET_PKG_DIR=" | ||
Line 252: | Line 253: | ||
VALET allows package definitions in a variety of formats (XML, JSON, YAML) but YAML tends to be the simplest format so we will use it here. | VALET allows package definitions in a variety of formats (XML, JSON, YAML) but YAML tends to be the simplest format so we will use it here. | ||
+ | |||
+ | ==== Package section ==== | ||
+ | |||
+ | The //package section// of the definition file includes items that apply to all versions/ | ||
+ | <code yaml> | ||
+ | vasp: | ||
+ | prefix: / | ||
+ | description: | ||
+ | url: " | ||
+ | </ | ||
+ | The //package identifier// | ||
+ | |||
+ | ==== Versions ==== | ||
+ | |||
+ | The '' | ||
+ | <code yaml> | ||
+ | vasp: | ||
+ | prefix: / | ||
+ | description: | ||
+ | url: " | ||
+ | | ||
+ | versions: | ||
+ | " | ||
+ | description: | ||
+ | dependencies: | ||
+ | - openmpi/ | ||
+ | - cuda/11.1.1 | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 80%> | ||
+ | The version identifier '' | ||
+ | |||
+ | The implicit behavior is overridden by providing a '' | ||
+ | </ | ||
+ | |||
+ | It is a good idea to specify which version definition should act as the default. | ||
+ | |||
+ | <file yaml vasp.vpkg_yaml> | ||
+ | vasp: | ||
+ | prefix: / | ||
+ | description: | ||
+ | url: " | ||
+ | | ||
+ | default-version: | ||
+ | | ||
+ | versions: | ||
+ | " | ||
+ | description: | ||
+ | dependencies: | ||
+ | - openmpi/ | ||
+ | - cuda/11.1.1 | ||
+ | </ | ||
+ | |||
+ | saved at '' | ||
+ | |||
+ | ==== Checking the definition file ==== | ||
+ | |||
+ | The package definition file can be checked for proper syntax using the VALET command '' | ||
+ | <code bash> | ||
+ | [user@login00.darwin ~]$ vpkg_check " | ||
+ | / | ||
+ | |||
+ | [vasp] { | ||
+ | contexts: all | ||
+ | actions: { | ||
+ | VASP_PREFIX=${VALET_PATH_PREFIX} (contexts: development) | ||
+ | } | ||
+ | http:// | ||
+ | Vienna Ab-initio Simulation Package | ||
+ | prefix: / | ||
+ | source file: / | ||
+ | default version: vasp/6.1.0 | ||
+ | versions: { | ||
+ | [vasp/ | ||
+ | contexts: all | ||
+ | dependencies: | ||
+ | openmpi/ | ||
+ | cuda/11.1.1 | ||
+ | } | ||
+ | compiled with Open MPI, Intel compilers, MKL, ScaLAPACK, CUDA | ||
+ | prefix: / | ||
+ | standard paths: { | ||
+ | bin: / | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | The file had no errors in its YAML syntax. | ||
+ | |||
+ | ==== Runtime environment ==== | ||
+ | |||
+ | To load **vasp** 6.1.0 into the runtime environment, | ||
+ | <code bash> | ||
+ | [user@login00.darwin ~]$ vpkg_require vasp/6.1.0 | ||
+ | Adding dependency `intel/ | ||
+ | Adding dependency `openmpi/ | ||
+ | Adding dependency `cuda/ | ||
+ | Adding package `vasp/ | ||
+ | [user@login00.darwin ~]$ which vasp_std | ||
+ | ~/ | ||
+ | </ | ||
+ | The '' | ||
+ | |||
+ |