GithubHelp home page GithubHelp logo

e-queue-hpc's Introduction

E-Queue HPC

A Task Queue for Coordinating Varied Tasks Across Multiple HPC Resources and HPC Jobs.

The main interface is the JobQueue module that connects to a Postgres database and allows users to send JSON objects as task descriptions to the database, which then will return these to individual resources when they request a task. The software needs to know how to unpack the JSON and execute the correct job from the description.

If the database is configured to be available from multiple clusters, then the compute nodes at these different clusters can all request tasks from the JobQueue and participate in the overall workflow.

Installation

We build our environment using conda. Execute the following steps to install the development environment.

    conda env create
    source activate jobqueue
    python setup.py develop

If you'd like to include this module in an existing project, we recommend including it as a pip dependency in your environment.yml conda file. For example:

"--editable=git+https://github.com/NREL/E-Queue-HPC.git@master#egg=jobqueue"

Using the jobqueue module

Database access

At the moment, you must have read/write/create capabilities on your database. In order for jobqueue to know which databases you have access to you will need to describe these in a hidden file located in your home directory called ".jobqueue.json". The structure should look like the following:

File location: os.path.join(os.environ['HOME'], ".jobqueue.json")

    {
        "project1": {
            "host": "HOSTNAME",
            "user": "project1ops",
            "dbname": "project1",
            "password": "*****************",
            "table_name": "jobqueue"
        },
        "project2": {
            "host": "HOSTNAME",
            "user": "project2ops",
            "dbname": "project2",
            "password": "*****************",
            "table_name": "jobqueue"
        },

    }

JobQueue module

Please see the test case for details on using the JobQueue module. To run the test, type:

    pytest -s -v 

e-queue-hpc's People

Contributors

charlesedisontripp avatar jperrsau-at-nrel avatar

Stargazers

 avatar Omar Ibrahim avatar  avatar

Watchers

James Cloos avatar National Renewable Energy Laboratory avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.