JUSTUS2/Software/Dalton: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
No edit summary
 
(71 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Softwarepage|chem/dalton}}

{| width=760px class="wikitable"
{| width=760px class="wikitable"
|-
|-
Line 5: Line 7:
| module load
| module load
| chem/dalton
| chem/dalton
|-
| Availability
| [[BwForCluster_JUSTUS_2]]
|-
|-
| License
| License
| Open-source software, distributed under the GNU Lesser General Public License (LGPL). [[#License|More...]]
| GNU Lesser General Public License (LGPL).
|-
|-
| Citing
| Citing
Line 23: Line 22:
= Description =
= Description =


'''Dalton''' (named after [https://en.wikipedia.org/wiki/John_Dalton John Dalton]) is an ab initio quantum chemistry computer program designed to to allow convenient, automated determination of a large number of molecular properties based on an HF, HF-srDFT, DFT, MP2, CC, CI, MCSCF, or MC-srDFT reference wave function. For additional information on features please visit [https://daltonprogram.org/features/ Description of the Dalton program features] web page.
'''Dalton''' (named after [https://en.wikipedia.org/wiki/John_Dalton John Dalton]) is an ab initio quantum chemistry computer program designed to to allow convenient, automated determination of a large number of molecular properties based on an HF, HF-srDFT, DFT, MP2, CC, CI, MCSCF, or MC-srDFT reference wave function. For additional information on features please visit the [https://daltonprogram.org/features/ Description of the Dalton suite features] web page.


= Availability =


= Usage =
Dalton is available on selected bwHPC-Clusters. A complete list of versions currently installed on the bwHPC-Clusters can be obtained from the [https://www.bwhpc.de/software.html Cluster Information System (CIS)].
== Loading the module ==
See [[Software Modules]] documentation


== Input Files ==
In order to check which versions of Dalton are installed on the compute cluster, run the following command:
<pre>
$ module avail chem/dalton
</pre>


For information about how to construct input files (dalinp{.dal} [molinp{.mol} [potinp{.pot}]]) for Dalton, please consult the [https://daltonprogram.org/manuals/dalton2020manual.pdf vendor documentation].
= License =


== Environment Variables ==
Dalton is free, open-source software released under the GNU Lesser General Public License (LGPL). Anyone interested in using the Dalton program suite must read the conditions described in its [https://gitlab.com/dalton/dalton/-/blob/master/LICENSE license agreement].


Environment variables understood by Dalton:
= Usage =
== Loading the module ==
You can load the default version of ''Dalton'' with the command:
<pre>
<pre>
DALTON_TMPDIR : scratch directory
$ module load chem/dalton
DALTON_USE_GLOBAL_SCRATCH : use global scratch directory, do not copy any files to worker nodes
DALTON_NODELIST : list of nodes, dalton.x will be copied to DALTON_TMPDIR on each node unless
DALTON_USE_GLOBAL_SCRATCH is defined
DALTON_LAUNCHER : launcher for the dalton.x binary (if defined, -N flag not allowed)
</pre>
</pre>

The module will try to load modules it needs to function (e.g. compiler, mpi, numlibs).
If loading the module fails, check if you have already loaded one of those modules,
but not in the version needed for Dalton.
If you wish to load a specific (older) version (if available), you can do so using e.g.
'module load chem/dalton/version' to load the version you desires.
<pre>
$ module avail chem/dalton
------------------------ /opt/bwhpc/common/modulefiles -------------------------
chem/dalton/2013
$ module load chem/dalton/2013
</pre>
== Program Binaries ==
You can find the Dalton binaries in the main folder of the Dalton system.
After loading the Dalton module ('module load chem/dalton/version') it's path is
also set to the local $PATH- and [[#Dalton-Specific Environments|$DALTON_BIN_DIR environments]].
<br>
$DALTON_BIN_DIR=/opt/bwhpc/common/chem/
<pre>
$ : Example with Dalton 2013
$ echo $DALTON_BIN_DIR
/opt/bwhpc/common/chem/dalton/2013/bin
$ ls -F $DALTON_BIN_DIR
basis/ DALTON.STAT GIT_HASH lsdalton.x* tools/
dalton* dalton.x* lsdalton* lslib_tester.x* VERSION
</pre>
* A '/' at the end of a file name indicates a directory/folder.
* '*' is an executable file.


== Disk Usage ==
== Disk Usage ==
Scratch files are written to the current directory by default.
<font color=red>Please change to a local directory or to '''your local workspace''' (preferred) before starting your calculations.</font>


Scratch files are written to <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080">$SCRATCH</span> by default. This configuration option can be changed by setting the environment variable <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080">$DALTON_TMPDIR</span> (e.g., to a dedicated [[workspace]]) before starting your calculations with Dalton.
'dalton_repo' is an example name of a repository you created by using the command 'ws_allocate'.


= Examples =

As with all processes that require more than a few minutes to run, non-trivial compute jobs must be submitted to the cluster queuing system.

Example scripts are available in the directory <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080">$DALTON_EXA_DIR</span>:
<pre>
<pre>
$ module load chem/dalton # load module
$ cd $(ws_find dalton_repo)
$ ls $DALTON_EXA_DIR # show content of directory $DALTON_EXA_DIR
['your-id'-dalton_repo-0]$ pwd
$ cat $DALTON_EXA_DIR/README # show examples README
/work/workspace/scratch/'your-id'-dalton_repo-0
['your-id'-dalton_repo-0]$
</pre>
</pre>

<br>
Run a first simple example job on JUSTUS2:
= Examples =
== bwHPC examples ==
You can copy a simple interactive example to your '''workspace''' and run it, using 'msub'
<pre>
<pre>
$ module load chem/dalton # load module
$ cd $(ws_find dalton_repo)
$ WORKSPACE=`ws_allocate dalton 3` # allocate workspace
$ cp $DALTON_EXA_DIR/bwunicluster-dalton-example.moab .
$ cd $WORKSPACE # change to workspace
$ cp bwunicluster-dalton-example.moab mydaltonjob.moab
$ cp -a $DALTON_HOME/bwhpc-examples . # copy example files to workspace
§ vi mydaltonjob.moab # do your own modifications
$ cd bwhpc-examples # change to test directory
$ msub mydaltonjob.moab # start job submission
$ sbatch dalton-2020.0.slurm # submit job
$ squeue # obtain JOBID
$ scontrol show job <JOBID> # check state of job
$ ls # when job finishes the results will be visible in this directory
</pre>
</pre>
It is strongly recommended to use [[#Dalton-Specific Environments|$DALTON_EXA_DIR]] to find the bwHPC examples.
<br>
=== bwHPC Moab submit script ===
Here is an excerpt from the supplied bwunicluster-dalton-example.moab script as found in $DALTON_EXA_DIR.
{{bwFrameA|
<source lang="bash">
[...]
echo " "
echo "### Copying input test files for job (if required):"
echo " "
cp -vr ${DALTON_EXA_DIR}/ethane-blyp-benchmark.{dal,mol} .


= FAQ =
echo " "
echo "### Redefine TMPDIR for storing temporary Dalton files ..."
echo " "
export TMPDIR="${TMP_WORK_DIR}/dalton_tmp"
export DALTON_TMPDIR="${TMP_WORK_DIR}/dalton_tmp"
echo "TMPDIR = ${TMPDIR}"
echo "DALTON_TMPDIR = ${TMPDIR}"
echo " "
echo "### Calling dalton command ..."
echo " "


'''Q:''' What to do if my simulations abort with <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080"> MEMGET ERROR, insufficient work space in memory </span>?
# Here is the main Dalton command showing how to run a regular
# Dalton job (mpirun is invoked within the 'dalton' script automatically).
# For details on the Dalton job see 'ethane-blyp-benchmark.info'.
# Example job input: ethane-blyp-benchmark.{dal,mol}
# Example job output: bwhpc-example.out ethane-blyp-benchmark.tar.gz.
export workdir=${TMP_WORK_DIR}
cd ${TMP_WORK_DIR}
time $DALTON_BIN_DIR/dalton -N ${MOAB_PROCCOUNT} -o bwhpc-example.out ethane-blyp-benchmark.dal ethane-blyp-benchmark.mol
[...]
</source>
}}
<br>


'''A:''' Increase Dalton's usable work memory with either -mb or -gb on the command line.
= Dalton-Specific Environments =
To see a list of all Dalton environments set by the 'module load'-command use 'env | grep DALTON'. Or use the command 'module display chem/dalton'.
<pre>
$ : Example with Dalton 2013
$ env | grep DALTON
DALTON_VERSION=2013
DALTON_EXA_DIR=/opt/bwhpc/common/chem/dalton/2013/bwhpc-examples
DALTON_BIN_DIR=/opt/bwhpc/common/chem/dalton/2013/bin
DALTON_HOME=/opt/bwhpc/common/chem/dalton/2013
</pre>
<br>
= Version-Specific Information =
For a more detailed information specific to a specific Dalton version, see the information available via the module system with the command 'module help chem/dalton/version'.
<br>
For a small abstract what Dalton is about use the command 'module whatis chem/dalton/version'.
<br>
<pre>
$ : Dalton 2013 examples
$ module whatis chem/dalton
chem/dalton : Moleculare electronic structure package DALTON 2013
(command 'dalton' and 'lsdalton')
$ :
$ module help chem/dalton
----------- Module Specific Help for 'chem/dalton/2013' -----------
This module provides the quantum chemistry program Dalton
version 2013 (see also http://dirac.chem.sdu.dk/daltonprogram.org/).


= Useful links =
The Dalton2013 suite consists of two separate executables,

'dalton' and 'lsdalton'. The DALTON code is a powerful tool
* [https://daltonprogram.org/manuals/dalton2020manual.pdf Documentation (english)]
for a wide range of molecular properties at different levels
* [http://forum.daltonprogram.org Forum (english)]
of theory (e.g. MCSCF or CC), whereas LSDALTON is a linear-scaling
* [https://en.wikipedia.org/wiki/Dalton_(program) Wikipedia article (english)]
HF and DFT code suitable for large molecular systems.
* [https://daltonprogram.org/tools/ Plugins for Dalton (english)]
[...]
Documentation:
* For 'dalton' command line options see output of 'dalton -h'.
This includes the specification of the memory, the number of workers
and how the tmp work dir is used.
* An Moab example script for dalton including a short
example calculation can be found here:
/opt/bwhpc/common/chem/dalton/2013/bwhpc-examples/bwunicluster-dalton-example.moab
You can copy the example and submit it to the queueing system.
[...]
</pre>
----
[[Category:Chemistry software]][[Category:bwUniCluster]]

Latest revision as of 11:30, 23 April 2024

The main documentation is available via module help chem/dalton on the cluster. Most software modules for applications provide working example batch scripts.


Description Content
module load chem/dalton
License GNU Lesser General Public License (LGPL).
Citing Publications
Links Homepage | Documentation
Graphical Interface No

Description

Dalton (named after John Dalton) is an ab initio quantum chemistry computer program designed to to allow convenient, automated determination of a large number of molecular properties based on an HF, HF-srDFT, DFT, MP2, CC, CI, MCSCF, or MC-srDFT reference wave function. For additional information on features please visit the Description of the Dalton suite features web page.


Usage

Loading the module

See Software Modules documentation

Input Files

For information about how to construct input files (dalinp{.dal} [molinp{.mol} [potinp{.pot}]]) for Dalton, please consult the vendor documentation.

Environment Variables

Environment variables understood by Dalton:

DALTON_TMPDIR             : scratch directory
DALTON_USE_GLOBAL_SCRATCH : use global scratch directory, do not copy any files to worker nodes
DALTON_NODELIST           : list of nodes, dalton.x will be copied to DALTON_TMPDIR on each node unless
                            DALTON_USE_GLOBAL_SCRATCH is defined
DALTON_LAUNCHER           : launcher for the dalton.x binary (if defined, -N flag not allowed)

Disk Usage

Scratch files are written to $SCRATCH by default. This configuration option can be changed by setting the environment variable $DALTON_TMPDIR (e.g., to a dedicated workspace) before starting your calculations with Dalton.

Examples

As with all processes that require more than a few minutes to run, non-trivial compute jobs must be submitted to the cluster queuing system.

Example scripts are available in the directory $DALTON_EXA_DIR:

$ module load chem/dalton                # load module
$ ls $DALTON_EXA_DIR                     # show content of directory $DALTON_EXA_DIR
$ cat $DALTON_EXA_DIR/README             # show examples README

Run a first simple example job on JUSTUS2:

$ module load chem/dalton                           # load module
$ WORKSPACE=`ws_allocate dalton 3`                  # allocate workspace
$ cd $WORKSPACE                                     # change to workspace
$ cp -a $DALTON_HOME/bwhpc-examples .               # copy example files to workspace
$ cd bwhpc-examples                                 # change to test directory
$ sbatch dalton-2020.0.slurm                        # submit job
$ squeue                                            # obtain JOBID
$ scontrol show job <JOBID>                         # check state of job
$ ls                                                # when job finishes the results will be visible in this directory

FAQ

Q: What to do if my simulations abort with MEMGET ERROR, insufficient work space in memory ?

A: Increase Dalton's usable work memory with either -mb or -gb on the command line.

Useful links