https://github.com/agnostiqhq/covalent-ssh-plugin

Executor plugin interfacing Covalent with remote backends using SSH

https://github.com/agnostiqhq/covalent-ssh-plugin

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

covalent data-pipeline distributed-computing etl machinelearning parallelization pipelines python python3 quantum-computing workflow workflow-automation

Keywords from Contributors

quantum-machine-learning hpc-applications machinelearning-python orchestration quantum workflow-management cloud-computing braket gcp-batch fargate
Last synced: 5 months ago · JSON representation

Repository

Executor plugin interfacing Covalent with remote backends using SSH

Basic Info
  • Host: GitHub
  • Owner: AgnostiqHQ
  • License: apache-2.0
  • Language: Python
  • Default Branch: develop
  • Homepage: https://covalent.xyz
  • Size: 325 KB
Statistics
  • Stars: 9
  • Watchers: 11
  • Forks: 5
  • Open Issues: 8
  • Releases: 27
Topics
covalent data-pipeline distributed-computing etl machinelearning parallelization pipelines python python3 quantum-computing workflow workflow-automation
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Code of conduct Codeowners

README.md

 

[![covalent](https://img.shields.io/badge/covalent-0.177.0-purple)](https://github.com/AgnostiqHQ/covalent) [![python](https://img.shields.io/pypi/pyversions/covalent-ssh-plugin)](https://github.com/AgnostiqHQ/covalent-ssh-plugin) [![tests](https://github.com/AgnostiqHQ/covalent-ssh-plugin/actions/workflows/tests.yml/badge.svg)](https://github.com/AgnostiqHQ/covalent-ssh-plugin/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/AgnostiqHQ/covalent-ssh-plugin/branch/main/graph/badge.svg?token=QNTR18SR5H)](https://codecov.io/gh/AgnostiqHQ/covalent-ssh-plugin) [![apache](https://img.shields.io/badge/License-Apache_License_2.0-blue)](https://www.apache.org/licenses/LICENSE-2.0)

Covalent SSH Plugin

Covalent is a Pythonic workflow tool used to execute tasks on advanced computing hardware. This executor plugin interfaces Covalent with other machines accessible to the user over SSH. It is appropriate to use this plugin to distribute tasks to one or more compute backends which are not controlled by a cluster management system, such as computers on a LAN, or even a collection of small-form-factor Linux-based devices such as Raspberry Pis, NVIDIA Jetsons, or Xeon Phi co-processors.

To use this plugin with Covalent, simply install it using pip:

shell pip install covalent-ssh-plugin

The following shows an example of how a user might modify their Covalent configuration to support this plugin:

shell [executors.ssh] username = "user" hostname = "host.hostname.org" remote_cache_dir = "/home/user/.cache/covalent" ssh_key_file = "/home/user/.ssh/id_rsa" python_path = "python" conda_env = ""

This setup assumes the user has the ability to connect to the remote machine using ssh -i /home/user/.ssh/id_rsa user@host.hostname.org and has write-permissions on the remote directory /home/user/.cache/covalent (if it exists) or the closest parent directory (if it does not).

If you are using a named conda environment you can use the conda_env parameter to set the name of your conda environment. However if you wish use a specify a particular python binary you can configure the python_path parameter to the absolute path where python is located on the remote machine.

Within a workflow, users can decorate electrons using the default settings:

```python import covalent as ct

@ct.electron(executor="ssh") def my_task(): import socket return socket.gethostname() ```

or use a class object to customize behavior within particular tasks:

```python executor = ct.executor.SSHExecutor( username="user", hostname="host2.hostname.org", remotecachedir="/tmp/covalent", sshkeyfile="/home/user/.ssh/host2/id_rsa" )

@ct.electron(executor=executor) def mycustomtask(x, y): return x + y ```

For more information on how to get started with Covalent, check out the project homepage and the official documentation.

Release Notes

Release notes are available in the Changelog.

Citation

Please use the following citation in any publications:

W. J. Cunningham, S. K. Radha, F. Hasan, J. Kanem, S. W. Neagle, and S. Sanand. Covalent. Zenodo, 2022. https://doi.org/10.5281/zenodo.5903364

License

Covalent is licensed under the Apache License 2.0. See the LICENSE file or contact the support team for more details.

Owner

  • Name: Agnostiq
  • Login: AgnostiqHQ
  • Kind: organization
  • Email: contact@agnostiq.ai
  • Location: Toronto

Developing Software for Advanced Computing

GitHub Events

Total
  • Push event: 7
  • Fork event: 2
Last Year
  • Push event: 7
  • Fork event: 2

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 69
  • Total Committers: 12
  • Avg Commits per committer: 5.75
  • Development Distribution Score (DDS): 0.609
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
CovalentOpsBot c****t 27
Alejandro Esquivel ae@a****d 13
Will Cunningham w****7 9
Venkat Bala 1****a 5
Sankalp Sanand s****p@a****i 4
Faiyaz Hasan f****1@g****m 3
jkanem j****i@a****i 3
pre-commit-ci[bot] 6****] 1
Scott Wyman Neagle w****a@p****m 1
Madhur Tandon 2****n 1
Casey Jao c****y@a****i 1
Ara Ghukasyan 3****s 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 18
  • Total pull requests: 55
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 5 days
  • Total issue authors: 9
  • Total pull request authors: 13
  • Average comments per issue: 0.78
  • Average comments per pull request: 1.16
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AlejandroEsquivel (5)
  • venkatBala (3)
  • cjao (2)
  • arosen93 (2)
  • poojithurao (1)
  • araghukas (1)
  • kessler-frost (1)
  • Andrew-S-Rosen (1)
  • jkanem (1)
Pull Request Authors
  • AlejandroEsquivel (14)
  • kessler-frost (6)
  • wjcunningham7 (6)
  • cjao (5)
  • dependabot[bot] (5)
  • jkanem (5)
  • venkatBala (5)
  • pre-commit-ci[bot] (3)
  • Emmanuel289 (3)
  • araghukas (2)
  • FyzHsn (2)
  • madhur-tandon (1)
  • scottwn (1)
Top Labels
Issue Labels
feature (3) bug :bug: (3) Team West (2) improvements / runtime (1) testing / integration tests (1) testing / unit tests (1)
Pull Request Labels
dependencies (5) refactor / small (2) github_actions (2) python (2) testing / integration tests (1) testing / unit tests (1) improvements / style (1) devops (1) feature (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,110 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 33
  • Total maintainers: 1
pypi.org: covalent-ssh-plugin

Covalent SSH Plugin

  • Versions: 33
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 2,110 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 12.1%
Average: 16.3%
Stargazers count: 18.5%
Forks count: 19.1%
Dependent repos count: 21.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • asyncssh >=2.10.1
tests/requirements.txt pypi
  • flake8 ==3.9.2 test
  • isort ==5.7.0 test
  • mock ==4.0.3 test
  • nbconvert ==6.3.0 test
  • pre-commit ==2.13.0 test
  • pytest ==6.2.5 test
  • pytest-asyncio ==0.19.0 test
  • pytest-cov ==2.12.0 test
  • pytest-mock ==3.6.1 test
.github/workflows/changelog.yml actions
  • EndBug/add-and-commit v9 composite
  • actions/checkout v3 composite
.github/workflows/changelog_reminder.yml actions
  • actions/checkout master composite
  • peterjgrainger/action-changelog-reminder v1.3.0 composite
.github/workflows/license.yml actions
  • actions/checkout v3 composite
  • pilosus/action-pip-license-checker main composite
.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • ncipollo/release-action v1 composite
.github/workflows/tests.yml actions
  • actions-ecosystem/action-get-latest-tag v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v3 composite
.github/workflows/version.yml actions
  • actions/checkout v1 composite
  • tj-actions/changed-files v18.4 composite
tests/functional_tests/requirements.txt pypi
  • numpy ==1.23.2 test
  • python-dotenv ==0.21.0 test
  • scikit-learn ==1.1.2 test
pyproject.toml pypi
setup.py pypi