Package: pysqa
pysqa - a simple queue adapter for pythonHigh-performance computing (HPC) does not have to be hard. In this context the aim ofpysqais to simplify the submission of calculation to an HPC cluster 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, inpysqausers define submission script templates once and reuse them to submit many different calculations or workflows. These templates are defined in thejinja2 template language, so current submission scripts can be easily extended to templates. In addition to the submission of new jobs to the queuing systempysqaalso allows the users to track the progress of their jobs, delete them or enable reservations using the built-in functionality of the queuing system.All this functionality is available from both aPython interfaceas well as acommand line interface.FeaturesThe core feature ofpysqais the communication to an HPC queuing system (Flux,LFS,MOAB,SGE,SLURMandTORQUE). This includes:Submission of new calculation to the queuing system.List of calculation currently waiting or running on the queuing system.Deleting calculation which are currently waiting or running on the queuing system.List of available queue templates created by the user.Restriction of templates to a specific number of cores, run time or other computing resources. With integrated checks if a given calculation follows these restrictions.In addition to these core features,pysqais 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 to access remote HPC clusters.Transfer of file 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 ofmultiple local and remote queuing systemsfrom withinpysqa, which are represented to the user as a single resource.DocumentationInstallationpypi-based installationconda-based installationQueuing SystemsFluxLFSMOABSGESLURMTORQUEPython InterfaceList available queuesSubmit job to queueShow jobs in queueDelete job from queueCommand Line InterfaceSubmit jobEnable reservationList jobsDelete jobList filesHelpAdvanced ConfigurationRemote HPC ConfigurationAccess to Multiple HPCsDebuggingLocal Queuing SystemRemote HPCLicensepysqais released under the BSD licensehttps://github.com/pyiron/pysqa/blob/main/LICENSE. It is a spin-off of thepyironprojecthttps://github.com/pyiron/pyirontherefore if you usepysqafor 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},
}