DRMAA Implementations
The following implementations of the DRMAA 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 were several Grid Engine forks, all supporting DRMAA as programming interface in both C in Java, such as
Univa Grid Engine, Son of Grid Engine,
and Open Grid Scheduler.
Our recommended option is Open Cluster Scheduler, which is still under active development.
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).
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).
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.
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).