Proof-of-Concept for an ICON-CLM workflow using AiiDA.
This is a proof of concept porting part of the GCM2Icon workflow from SPICE to AiiDA.
There is an example for running the workflow for running GCM2Icon, which requires the following:
- A working installation and profile of AiiDA.
- This plugin installed.
- IPython installed.
- A computer (SLURM cluster to which you can authenticate through AiiDA). The example assumes it to be named "Daint", but this can be changed easily.
- A SPICE GCM2Icon workflow set up at a specific path on the computer
- Certain data files at a specific path on the computer
- All the paths can be changed without touching the source code, but this might not be obvious how to do.
After installing AiiDA, preferrably in a container or virtualenv, run pip install . (or pip install -e . for development) in the same python environment.
AiiDA topics not covered in the given examples:
- running shell commands (not scripts): https://aiida-shell.readthedocs.io/en/latest/
- proper testing of plugins (with database isolation and mocked clusters etc)
- deleting data from intermediary steps to avoid filling up scratch quota (compare
verdi calcjob cleanworkdircommand) - error recovery in workflows
- building higher level APIs for customizing workflows. The above mentioned
aiida-shellplugin is an example for one way of doing that. - improving data queries with extras (the example is for
Codes but works for all data types), user defined database node metadata.
This project has been set up using PyScaffold 4.2.1. For details and usage information on PyScaffold see https://pyscaffold.org/.