Skip to content
/ drmaa2 Public
forked from fukuehl/drmaa2

DRMAA2 Go (#golang) API for job submission, job workflow management, and HPC cluster monitoring.

License

Notifications You must be signed in to change notification settings

cgoina/drmaa2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drmaa2

GoDoc Apache V2 License

A Go (#golang) API for job submission, job workflow management, and HPC cluster monitoring based on the open OGF DRMAA2 standard (http://www.drmaa.org / http://www.ogf.org).

This Go API is a wrapper around the DRMAA2 C APIs. It is not yet finished. Improvements, bug reports, and pull requests are welcome. DRMAA2 Go API is not yet standardized but a draft (based on this implementation) is available here: http://redmine.ogf.org/projects/drmaav2-go-binding/repository

Note: The master branch contains now methods (like job.Reap()) which are specified in DRMAA2 2015 Errata. Those methods might not be (yet) in the underlying DRMAA2 C library. Hence I created a branch which is compatible with older DRMAA2 C implementations (UGE_82_Compatible) which can be used instead.

The master branch is compatible with Univa's 8.4.1 version and David's master branch corresponds to UGE_83_compatible branch. In 8.4.1 allocated jobs are no longer a list of strings but they are a drmaa2_list pointer so for now I replaced the allocated jobs with an unsafe pointer to get it to compile with 8.4.1.

Installation

  1. Download / Install Univa Grid Engine (see http://www.univa.com) Univa Grid Engine is currently the only cluster scheduler which supports the DRMAA2 standard. A quick guide to get it installed you can find in my blog article: http://www.gridengine.eu/index.php/grid-engine-internals/209-installing-a-univa-grid-engine-demo-cluster-with-one-command-2014-07-13

    Note that Univa Grid Engine is commercial.

  2. Be sure that you have Grid Engine in your path (i.e. $SGE_ROOT is set)

    You can test this by calling qhost / qstat / ..... Usually this is done by calling source /path/where/grid/engine/is/installed/default/common/settings.sh

    Note that "default" is the CELL directory which can be different to "default".

  3. Clone the project with git tools in your go source path (github.com/dgruber/drmaa2).

  4. Call build.sh

Usage

Please check out a detailed example which exploits the monitoring session and creates a webserver hosting the cluster status information.

https://github.com/dgruber/drmaa2_web_app

For a simple multi-clustering (access multiple compute clusters with the same tools) application based on this DRMAA2 API, please check out:

https://github.com/dgruber/ubercluster

It implements a simple webservice API for DRMAA2.

Documentation

https://godoc.org/github.com/dgruber/drmaa2

About

DRMAA2 Go (#golang) API for job submission, job workflow management, and HPC cluster monitoring.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.5%
  • Shell 0.5%