Skip to content

feature request: PSIJ submission via ssh #342

Open

Description

@andre-merzky

This will support #74. Probably best based on Paramiko as the (I think) most widely supported ssh lib in Python land

Activity

  1. self-assigned this
    on Feb 3, 2023
  2. hategan commented on Feb 3, 2023

    @hategan
    Collaborator

    Question: are we talking about running a remote command through SSH or remote submission (e.g., to SLURM) via SSH?

  3. andre-merzky commented on Feb 3, 2023

    @andre-merzky
    CollaboratorAuthor

    Speaking from the RCT perspective: we ultimately need the latter (remote submission to batch), but I currently would favor the approach to use the ssh executor to bootstrap and launch a PSIJ Rest or ZMQ service on the target machine and then proxy all executor requests to that service. So the ssh executor would need to only run commands really. As such, it would be basically a duplication of the local fork executor doing the same things over paramiko.

    Any thoughts on this?

    FWIW, we are happy with psij over ZMQ and REST at the moment. The ssh bootstrapping is a nice to have and I want to sink some time into this over the next weeks, thus the issue to track this activity, but it's not a showstopper for us ATM.

  4. hategan commented on Feb 3, 2023

    @hategan
    Collaborator

    Speaking from the RCT perspective: we ultimately need the latter (remote submission to batch), but I currently would favor the approach to use the ssh executor to bootstrap and launch a PSIJ Rest or ZMQ service on the target machine and then proxy all executor requests to that service. So the ssh executor would need to only run commands really. As such, it would be basically a duplication of the local fork executor doing the same things over paramiko.

    Any thoughts on this?

    FWIW, we are happy with psij over ZMQ and REST at the moment. The ssh bootstrapping is a nice to have and I want to sink some time into this over the next weeks, thus the issue to track this activity, but it's not a showstopper for us ATM.

    That's precisely what Coasters do/did in Swift/K, and it was a nice turn-key solution that required no interaction from the user (except a one-time setting up of credentials).
    Given that we both had tried this and seen it to work well, I'm in favor of it.
    It was also useful for setting up poor man's clusters.

    The Swift SSH provider was a bit more complex than local, since it used on-demand SSH channels over cached connections to avoid initiating fresh connections for each job. We may not want to do that in a first iteration, but it did prove more robust for high-throughput situations.

  5. andre-merzky commented on Mar 31, 2023

    @andre-merzky
    CollaboratorAuthor

    The Swift SSH provider was a bit more complex than local, since it used on-demand SSH channels over cached connections to avoid initiating fresh connections for each job. We may not want to do that in a first iteration, but it did prove more robust for high-throughput situations.

    That reflects what SAGA does did with surprising precision. Ack on both: this being potentially much faster and resource friendly, but also more complex and with low priority (for now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions