DRMAA Implementations

The following implementations of the DRMAA 1.0 specification are currently available.

Grid Engine (C & Java class library)

Since the arrival of N1 Grid Engine 6.0 in 2004, DRMAA was the primary API for Sun's Grid Engine product line. Sun is dead, so there are several Grid Engine forks now, all supporting DRMAA as programming interface in both C in Java:

Condor (C library)

Condor is a specialized workload management system for compute-intensive jobs. Like other full-featured batch systems, Condor provides a job queueing mechanism, scheduling policy, priority scheme, resource monitoring, and resource management. Users submit their serial or parallel jobs to Condor, Condor places them into a queue, chooses when and where to run the jobs based upon a policy, carefully monitors their progress, and ultimately informs the user upon completion. Unique mechanisms enable Condor to effectively harness wasted CPU power from otherwise idle desktop workstations.
Since 2006 (Condor 6.8 release), Condor is delivered with an implementation of the DRMAA C interface for 4 platforms (Linux X86, Linux Itanium, Windows, MacOSX).

PBS/Torque (C library)

TORQUE is an open source resource manager providing control over batch jobs and distributed compute nodes. It is a community effort based on the original PBS project. The people from CASPer Labs provided a first DRMAA C library for the Torque resource manager. A second implementation for Torque is available from the OpenDSP team (http://sourceforge.net/projects/pbs-drmaa/).

LSF (C library)

FedStage DRMAA for LSF library is an implementation of Open Grid Forum DRMAA 1.0 (Distributed Resource Management Application API) specification for the submission and control of jobs to Platform LSF. Grid applications builders, portal developers and ISVs can use the same high-level APIs to link their applications with different cluster/resource management systems such as Condor, SGE, Torque or SLURM. This software also enables the integration of Fedstage Open DRMAA Service Provider (OpenDSP) with the underlying Platform LSF system for remote multi-user job submission and control over Web Services.

GridWay Framework (C & Java class library)

The GridWay Meta-scheduler is a Globus project that enables large-scale, secure, reliable and efficient sharing of computing resources (clusters, computing farms, servers, supercomputers...), managed by different DRM (distributed resource management) systems, such as PBS, SGE, LSF, Condor..., within a single organization (enterprise grid) or scattered across several administrative domains (partner or supply-chain grid). GridWay 5.0 contains an implementation of the DRMAA C 1.0 and DRMAA Java 1.0 bindings.
The GridWay project also provides several DRMAA-related documents and software, like the Application Developer Guide (DRMAA C/JAVA bindings). Several GridWay users are using DRMAA to port their applications to large-scale Grid infrastructures (EGEE, SURAgrid).

IBM Tivoli LoadLeveler (C library)

PSNC DRMAA for LoadLeveler is an implementation of Open Grid Forum DRMAA 1.0 (Distributed Resource Management Application API) specification for submission and control of jobs to IBM Tivoli LoadLeveler. Using DRMAA, grid applications builders, portal developers and ISVs can use the same high-level API to link their software with different cluster/resource management systems. This software also enables the integration of Smoa Computing with the underlying LoadLeveler system for remote multi-user job submission and control over Web Services.

SLURM (Simple Linux Utility for Resource Management) (C library)

PSNC DRMAA for Simple Linux Utility for Resource Management (SLURM) is an implementation of Open Grid Forum DRMAA 1.0 (Distributed Resource Management Application API) specification for submission and control of jobs to Simple Linux Utility for Resource Management (SLURM). Using DRMAA, grid applications builders, portal developers and ISVs can use the same high-level API to link their software with different cluster/resource management systems. This software also enables the integration of Smoa Computing with the underlying SLURM system for remote multi-user job submission and control over Web Services.

Unicore Framework (C library)

The UNICORE Grid middleware system has been developed since the mid 1990s, and is currently used in daily production at many supercomputing centers worldwide. The Unicore Target System Interface Framework for UNICORE is now using is DRMAA as frontend to systems such as Condor, Sun Grid Engine, Globus or Torque. The implementation is documented in a conference paper.

Teikoku Grid Scheduling Framework

The teikoku Grid Scheduling Framework (tGSF) is a generic JAVA based system for he development and application of resource management strategies in computational grids.
Teikoku comes with an implementation of the DRMAA Java binding.

Perl Wrapper Library

The Perl CPAN repository contains a DRMAA Perl module, based on a SWIG conversion of the DRMAA C interface.

Python Wrapper Library

The official Python binding of DRMAA 1.0 is implemented in an open source project. Several cluster frameworks deploy this implementation as additional wrapper around the exising C libraries.

Ruby Wrapper Library

Under drmaa4ruby.sunsource.net you find an open source project that works a Ruby DRMAA class binding based on DRMAA C interface and Ruby/DL. Also sample applications are kept there.

XML-RPC Wrapper Library

drmaa-xmlrpc is a quick XMLRPC wrapper around the DRMAA API implemented by most popular cluster schedulers. It is written in C and depends on xmlrpc-c and your scheduler's DRMAA implementation library. The end daemon is an abyss webserver serving out standard XMLRPC calls. API follows DRMAAc bindings - same function names and same arguments (omit any buffers meant to return values).