AiiDA scheduler plugins that allow for conda run
.
Currently, as of aiida-core v2.0.1
, it is impossible to set up a Computer
+ Code
which can run, for example:
conda run --name myenv mpirun -np 4 pw.x -i input.in
since, (a) a code can only specify a remote_abs_path
and (b) only a computer can specify the mpirun_command
.
This is really the only way to run a code which is not in the Conda base
environment, since conda activate myenv
(which could perhaps be added to prepend_text
) fails when run in a script.
These scheduler plugins subclass the built-in scheduler subclasses, and overrides the _get_run_line
method and:
- Raises a
NotImplementedError
iflen(codes_info) != 1
orcodes_run_mode != CodeRunMode.SERIAL
(i.e. only one code is supported). - Loads the code from
codes_info[0].code_uuid
and retrieves its description - Uses this description to determine the environment name, by finding
env=myenv
- Appends
conda run --name myenv
to the run line.
pip install aiida_conda_scheduler
reentry scan # aiida v1.x only
Then the plugins should show in:
verdi plugin list aiida.schedulers
Use pipx to install the tox
and pre-commit
command tools.
git clone https://github.com/chrisjsewell/aiida-conda-scheduler .
cd aiida-conda-scheduler
pre-commit run --all
tox
For aiida-core v1, use e.g.
tox -e py38-v1
MIT