-
Notifications
You must be signed in to change notification settings - Fork 117
[feat] Add an SSH-based scheduler backend #2975
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The following are added: - Implementation of a future that wraps a spawned process - A new scheduler that can spawn reframe jobs on a remote machine accessed with SSH.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## develop #2975 +/- ##
==========================================
Coverage ? 86.73%
==========================================
Files ? 61
Lines ? 11962
Branches ? 0
==========================================
Hits ? 10375
Misses ? 1587
Partials ? 0
☔ View full report in Codecov by Sentry. |
|
Hello @vkarak, Thank you for updating! Cheers! There are no PEP8 issues in this Pull Request!Do see the ReFrame Coding Style Guide Comment last updated at 2023-09-29 21:31:48 UTC |
victorusu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm. I wonder how we will do the unit tests for this scheduler. Do we have any plans?
I just added some basic unit tests. |
The new backend is called
sshand will spawn a test job on a remote host. More specifically, it will copy the test's stage directory to the remote host, execute the job and copy back the results.Multiple hosts can be assigned to a partition with an
sshscheduler, in which case the scheduler will pick the next free host to spawn a test on.This PR also introduced a new
run_command_async2utility for executing asynchronous commands. Conversely to therun_command_async, this returns a "future" encapsulating the spawned process. Process futures can be chained with thethen()method and the chained futures will be called upon termination of the predecessor in the chain.The SSH scheduler backend uses the process futures and spawns a chain of push artefacts-execute job-pull artefacts commands in its
submit()method, so that it does not block. The progress is ensured by the scheduler'spoll()method which polls the spawned futures for completion.This PR essentially solves the feature request in #64.
More details about the new scheduler can be found in its docs.