You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current API, for interfacing with compute resources (local computer, remote cluster, HPC, etc) is principally split into two components:
The Transport class handles interfacing with the computer's filesystem
The Scheduler class handles interfacing with the computer's (calculation) job scheduler
This works well, for "de-duplicating" the many-to-many mapping of:
Interfacing with (a) the local computer or (b) interfacing to a remote via SSH
Interfacing with any of the possible schedulers on these computers (SLURM, PBS, SGE, ...)
However, there is currently a coupling between these two interfaces, since the Scheduler requires that the Transport can send BASH commands directly to the computer.
This split of components and requirement on that the Transport can send BASH commands is blocking for Client APIs, such as FirecREST, that tightly couple interaction with both the file system and the scheduler, and which have a different API for interacting with the Scheduler.
Desired Outcome
AiiDA should allow for compute resource plugins, which provide collectively filesystem and scheduler APIs, and which do not rely on the sending of BASH commands.
The roadmap item can be deemed closed, once an AiiDA FirecREST plugin has been fully realised.
Impact
FirecREST and, more broadly, REST based APIs for interacting with HPCs are a growing component of scientific compute clusters.
This is particularly critical in emergence of two-factor authentication (2FA) protocols.
Having an interface for such clients, would help future-proof AiiDA going forward.
Complexity
Due to the current code architecture in AiiDA, it is certainly not trivial to refactor it and achieve this.
Certainly, this will take a number of months to achieve:
Put the initial architecture refactoring in place, to allow for such a plugin, and
Thanks @giovannipizzi
I believe this is addressed by @sphuber on aiidateam/aiida-core#6043
On plugin level, main functionalities of aiida-firecrest already works with that PR. However, since that is a vulnerable change I'm manually testing with SSH client, to insure its functioning as expected.
Motivation
The current API, for interfacing with compute resources (local computer, remote cluster, HPC, etc) is principally split into two components:
Transport
class handles interfacing with the computer's filesystemScheduler
class handles interfacing with the computer's (calculation) job schedulerThis works well, for "de-duplicating" the many-to-many mapping of:
However, there is currently a coupling between these two interfaces, since the Scheduler requires that the Transport can send BASH commands directly to the computer.
This split of components and requirement on that the Transport can send BASH commands is blocking for Client APIs, such as FirecREST, that tightly couple interaction with both the file system and the scheduler, and which have a different API for interacting with the Scheduler.
Desired Outcome
AiiDA should allow for compute resource plugins, which provide collectively filesystem and scheduler APIs, and which do not rely on the sending of BASH commands.
The roadmap item can be deemed closed, once an AiiDA FirecREST plugin has been fully realised.
Impact
FirecREST and, more broadly, REST based APIs for interacting with HPCs are a growing component of scientific compute clusters.
This is particularly critical in emergence of two-factor authentication (2FA) protocols.
Having an interface for such clients, would help future-proof AiiDA going forward.
Complexity
Due to the current code architecture in AiiDA, it is certainly not trivial to refactor it and achieve this.
Certainly, this will take a number of months to achieve:
Progress
Work is ongoing across:
The text was updated successfully, but these errors were encountered: