Skip to main content

A pure Python remote job scheduler system

Project description

https://travis-ci.org/parashardhapola/pscheduler.svg?branch=master https://img.shields.io/pypi/l/pscheduler.svg https://img.shields.io/pypi/v/pscheduler.svg https://img.shields.io/pypi/wheel/pscheduler.svg Code Health

Setup

  • This pscheduler service is critical dependent upon the usage of shared filesystem across the remote machines. Setup NFS for all the remote machines.

  • Have same login credentials for all the remote machines.

  • Basic Linux utilities like ssh and nohup should be installed on all the remote machines.

Install

pscheduler is a Python 3 only module and can be easily installed using pip:

pip install pscheduler

Configuration

  • Start the service using pscheduler service start. This will create a directory .pscheduler under your home directory.

  • Edit file ~/.pscheduler/hosts.cfg and add all the IP addresses/domain aliases of the remote machines in each line. Save and exit. Alternately if you are in an HPC environment and LSF is already installed, then you can use the provided script bhostsWrapper.py to directly populate the remote machine. You should then edit it to remove the head node machine from the list and any other required host.

  • If you have not already setup password-less login into remote machines, then use the provided script batchSetupLoginKeys.py to set it up.

Usage

  • There are four basic utilities:

    service

    start/stop the background service

    hosts

    get information on remote machines

    sub

    submit jobs

    jobs

    monitor running/pending job

    See helpfiles of individual subcommands for further details

  • It is critical that the background service is started before the submitting any job

  • Examples:

    • Start service: pscheduler service start

    • Submit job: pscheduler sub "sleep 10"

  • Pending and running job configuration files are stored under ~/.pscheduler/jobs in PEND and RUN directory respectively. By default the finished job configuration file containing standard output(JSON format) are stored under ~/.pscheduler/jobs/FINISH, but users can choose a custom location for this file by using -o flag while submitting job and providing the output location path.

  • ~/.pscheduler/DAEMON.log contains the log of the background service. You should have a look at this file to see if any error messages have been thrown.

  • Note that pscheduler will not will ignore the scheduling by other schedulers and simply launch jobs based on availability of resources (currently only number of CPU cores).

Roadmap for future versions

  • Implement jobs subcommand

  • Job restart in case of resource spike

  • Improve code for catching fatal exceptions

HISTORY

  • 0.0.1:
    • FIRST PRE ALPHA RELEASE

  • 0.0.2:
    • CLI CREATED using wrapper.py

    • BHOST wrapper script separated form phosts module

    • Introduced hosts.cfg: A user editable list of hosts

    • Batch script made for creating login keys

    • PSUB now saves in JSON format

    • DEV: Submit to PyPi using python script

    • DEV: Automatic update of version in setup.py

  • 0.0.3:
    • Added pscheduler in scripts for command line invocation

  • 0.0.4:
    • Deployment fix

  • 0.0.5:
    • Import fix

  • 0.0.6:
    • Json fix

  • 0.0.7:
    • jobs subcommand implemented

    • phosts doublehost check issue rectified

    • submission process improved in daemon

    • class naming convention changed

    • default host fixed to localhost. passwordless loging into localhost created

    • DEV: Travis CI now being used for testing

  • 0.1.0:
    • pdaemon fix

    • Rolledback SSH keygen

Contributors

Parashar Dhapola (parashar.dhapola@gmail.com)

Project details


Download files

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

Source Distribution

pscheduler-0.1.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

pscheduler-0.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file pscheduler-0.1.0.tar.gz.

File metadata

  • Download URL: pscheduler-0.1.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pscheduler-0.1.0.tar.gz
Algorithm Hash digest
SHA256 18c13ee405503493e89870538b766c5af8462cecbd1c11fbf21e8949e27e6b1e
MD5 57dc6400692e2948be57eb8bde5db097
BLAKE2b-256 a8708a2fdc3637b7c4879200e11bf9f31b64b13a3d221fd27f7e4b27b81e7632

See more details on using hashes here.

File details

Details for the file pscheduler-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pscheduler-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62cd373a6cd5b83033f851782fa59cab9d8fc3477001cdd42525b3dc55ea82c1
MD5 f07d6190cbf2e62b232a2cd9498c7d5b
BLAKE2b-256 19075cea868158dc767986dc3121c5da5141f79689dfbec8db36c72db1ab65c1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page