How to Run AutoPot on a Cluster?
To run AutoPot on a cluster, additional configuration is necessary. First, the compute nodes need to access the database through a TCP connection.
This can be done by adding the host of the ZEO server in motoko.yaml for
each task:
select:
host: zeo://cluster_name:8010
The number at the end is the port, which needs to be different for every task.
Further, specify a submission manager, such as Slurm, and add options. This can
be done at the workflow level by appending the following to motoko.yaml:
generator: slurmCoat
slurm_options:
- nodes=1
- ntasks=1
- cpus-per-task=1
A complete motoko.yaml file for cluster usage will look like this:
task_managers:
select:
host: zeo://cluster_name:8010
md_select:
host: zeo://cluster_name:8011
eam:
host: zeo://cluster_name:8012
vasp:
host: zeo://cluster_name:8013
train:
host: zeo://cluster_name:8014
aliases:
sp_calc: vasp
orchestrator: orchestrator.main
generator: slurmCoat
slurm_options:
- nodes=1
- ntasks=1
- cpus-per-task=1
In many situations, different Slurm setups are needed for different tasks. For
example, MD simulations may run on one core, but VASP calculations may run on a
whole node. This can be realized by adding slurm_options to the run
parameters in the bd.yaml file corresponding to the vasp task:
study: sp_calc
job:
cfg_fname: str
incar_fname: str
run:
slurm_options: list
job_space:
incar_fname: INCAR_ase
run_params:
slurm_options:
- nodes=1
- ntasks=64
- cpus-per-task=1
Any Slurm option defined in the bd.yaml file of a task will overwrite the
options defined on the workflow level.