Skip to main content

pysqa

Pipeline Documentation Status codecov Binder GitHub Repo stars

High-performance computing (HPC) does not have to be hard. In this context the aim of the Python Simple Queuing System Adapter (pysqa) is to simplify the submission of tasks from python to HPC clusters as easy as starting another subprocess locally. This is achieved based on the assumption that even though modern HPC queuing systems offer a wide range of different configuration options, most users submit the majority of their jobs with very similar parameters.

Therefore, in pysqa users define submission script templates once and reuse them to submit many different tasks and workflows afterwards. These templates are defined in the jinja2 template language, so current submission scripts can be easily converted to templates. In addition, to the submission of new tasks to HPC queuing systems, pysqa also allows the users to track the progress of their tasks, delete them or enable reservations using the built-in functionality of the queuing system. Finally, pysqa enables remote connections to HPC clusters using SSH including support for two factor authentication via pyauthenticator, this allows the users to submit task from a python process on their local workstation to remote HPC clusters.

All this functionality is available from both the Python interface as well as the command line interface.

Features

The core feature of pysqa is the communication to HPC queuing systems including (Flux, LFS, MOAB, SGE, SLURM and TORQUE). This includes:

  • QueueAdapter().submit_job() - Submission of new tasks to the queuing system.
  • QueueAdapter().get_queue_status() - List of calculation currently waiting or running on the queuing system.
  • QueueAdapter().delete_job() - Deleting calculation which are currently waiting or running on the queuing system.
  • QueueAdapter().queue_list - List of available queue templates created by the user.
  • QueueAdapter().config - Templates to a specific number of cores, run time or other computing resources. With integrated checks if a given submitted task follows these restrictions.

In addition to these core features, pysqa is continuously extended to support more use cases for a larger group of users. These new features include the support for remote queuing systems:

  • Remote connection via the secure shell protocol (SSH) to access remote HPC clusters.
  • Transfer of files to and from remote HPC clusters, based on a predefined mapping of the remote file system into the local file system.
  • Support for both individual connections as well as continuous connections depending on the network availability.

Finally, there is current work in progress to support a combination of multiple local and remote queuing systems from within pysqa, which are represented to the user as a single resource.

Documentation

Contributing

Contributions are welcome! Please see the contribution guidelines for how to report issues, request features, seek support and submit code, and the code of conduct for our community standards. Bugs and feature requests are tracked on the issue tracker.

License

pysqa is released under the BSD license . It is a spin-off of the pyiron project therefore if you use pysqa for calculation which result in a scientific publication, please cite:

@article{pyiron-paper,
  title = {pyiron: An integrated development environment for computational materials science},
  journal = {Computational Materials Science},
  volume = {163},
  pages = {24 - 36},
  year = {2019},
  issn = {0927-0256},
  doi = {https://doi.org/10.1016/j.commatsci.2018.07.043},
  url = {http://www.sciencedirect.com/science/article/pii/S0927025618304786},
  author = {Jan Janssen and Sudarsan Surendralal and Yury Lysogorskiy and Mira Todorova and Tilmann Hickel and Ralf Drautz and Jörg Neugebauer},
  keywords = {Modelling workflow, Integrated development environment, Complex simulation protocols},
}

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysqa-0.4.4.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysqa-0.4.4-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

Details for the file pysqa-0.4.4.tar.gz.

File metadata

  • Download URL: pysqa-0.4.4.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pysqa-0.4.4.tar.gz
Algorithm Hash digest
SHA256 01dcf35f06d5ec36c2538460295fad487077e4efa3edf8b1a7260f2611bcdf64
MD5 7741513ebf4924cf4dc6ca9b0ed5a6f8
BLAKE2b-256 9add859a9924e041e51a654c8f25f85f157d785040a1de82af02fd84424ef250

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysqa-0.4.4.tar.gz:

Publisher: deploy.yml on pyiron/pysqa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysqa-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: pysqa-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pysqa-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8850cf37b4b93f8f9becb136a57996cf2fbb446588b0b9d998bc536e7e48e214
MD5 cd79c3bda1e5c60720e822394a0b7d7d
BLAKE2b-256 f626500d54d0d06557a112427dfe96f3235e6b78b3d1018b5ef35fda110c807b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysqa-0.4.4-py3-none-any.whl:

Publisher: deploy.yml on pyiron/pysqa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page