aiidateam / aiida-testing

A pytest plugin to simplify testing of AiiDA plugins.
MIT License
5 stars 6 forks source link

Support MPI executables (on a single process) #47

Closed ltalirz closed 1 year ago

ltalirz commented 3 years ago

This builds on #45 and makes it possible to run executables through mpirun, but on a single-process only(!).

Previously, when the mock executable would detect that an input is not present in the cache, it would

This approach obviously does not work in conjunction with MPI, since it ends up calling mpirun twice: once for running the mock executable, and once again inside the mock executable when it calls the submit script again.

This PR changes the mock executable to simply call the fallback executable directly, using the command line arguments that were provided. Environment variables are forwarded to the subprocess automatically using subprocess.call.

This works for running with -np 1, but it still does not solve running with more than one process (one should probably add a check).

ltalirz commented 1 year ago

Reviving this pull request, as it is used in aiida-lsmo required by @mpougin

@greschd do you see any obvious issues with this approach?

greschd commented 1 year ago

LGTM, apart from the suggestion above (remove outdated comment).

ltalirz commented 1 year ago

Thanks for the quick review @greschd, much appreciated!