Distributed Resource Management Application API (DRMAA) is a high-level Open Grid Forum (OGF) API specification for the submission and control of jobs to a distributed resource management (DRM) system, such as a cluster or grid computing infrastructure. The scope of the API covers all the high level functionality required for applications to submit, control, and monitor jobs on execution resources in the DRM system.
In 2012 the second version of the DRMAA standard (DRMAA2) was published in an abstract interface definition language (IDL) defining the semantic of the functions in GFD 194. DRMAA2 specifies more than twice as many calls as DRMAA. It covers cluster monitoring, has a notion of queues and machines, and introduces a multi job-session concept for single applications for a better job workflow management. Later in 2012 the C API was specified as a first language binding in GF 198.
The development of this API was done through the Global Grid Forum, in the model of IETF standard development, and it was originally co-authored by:
- Roger Brobst from Cadence Design Systems
- Waiman Chan from IBM
- Fritz Ferstl from Sun Microsystems, now Univa
- Jeff Gardiner from John P. Robarts Research Institute
- Andreas Haas from Sun Microsystems (Co-Chair)
- Bill Nitzberg from Altair Engineering
- Hrabri Rajic from Intel (Maintainer & Co-Chair)
- John Tollefsrud from Sun Microsystems Founding (Chair)
This specification was first proposed at Global Grid Forum 3 (GGF3) in Frascati, Italy, but gained most of its momentum at Global Grid Forum 4 in Toronto, Ontario. The development of the specification was first proposed with the objective to facilitate direct interfacing of applications to existing DRM systems by application's builders, portal builders, and Independent Software Vendors (ISVs). Because the API was co-authored by participants from a wide-selection of companies and included participants from industries and education, its development resulted in an open standard that received a relatively good reception from a wide audience quickly.
Without DRMAA, no standard model existed to submit jobs to component regions of a Grid, assuming each region was running local DRMSs. The first version of DRMAA API has been implemented in Sun's Grid Engine and also in the University of Wisconsin–Madison's program Condor. Furthermore, C, Java, and IDL binding documents have been made available.
- Grid Engine
- Univa Grid Engine
- EGEE (LCG2 / gLite)
- Kerrighed Cluster Framework
- IBM Tivoli Workload Scheduler LoadLeveler
- Python DRMAA2 Reference Implementation
Other language bindings can be generated easily from SWIG, which was first used by the Perl binding.
A number of software solutions use DRMAA to interface with different resource management systems:
- LONI Pipeline
- eXludus RepliCator
- GridwiseTech Grid Engine-Globus Toolkit adapter
- "DRMAA and GridRPC Documents Achieve "Grid Recommendation" Status". Open Grid Forum. 2008-01-07.
- "Distributed Resource Management Application API Version 2" (PDF). Open Grid Forum. 2012-02-01.
- "Distributed Resource Management Application API Version 2 - C Language Binding" (PDF). Open Grid Forum. 2012-12-01.
- GGF3 - The Third Global Grid Forum October 7 - 11, 2001
- "N1 Grid Engine DRMAA 1.0 Implementation – Experience Report" (PDF). Open Grid Forum. 2008-01-04. Archived from the original (PDF) on 2011-07-16. CS1 maint: discouraged parameter (link)
- "Univa Grid Engine - Data Sheet" (PDF). Univa Corporation.
- "Condor DRMAA 1.0 Implementation – Experience Report" (PDF). Open Grid Forum. 2008-01-04.[permanent dead link]
- "PBS/Torque DRMAA 1.0 Implementation – Experience Report" (PDF). Open Grid Forum. 2008-01-04.
- "GridWay DRMAA 1.0 Implementation – Experience Report" (PDF). Open Grid Forum. 2008-01-04. Archived from the original (PDF) on 2011-07-16. CS1 maint: discouraged parameter (link)
- "XgridDRMAA". SourceForge. 2008-01-04.
- Riedel, M.; Menday, R.; Streit, A.; Bala, P. (2006-07-12). "A DRMAA-based target system interface framework for UNICORE". 12th International Conference on Parallel and Distributed Systems - (ICPADS'06). IEEE. pp. 6 pp. doi:10.1109/ICPADS.2006.13. ISBN 0-7695-2612-8.
- "February 1, 2008" (PDF). 2008-02-01. Archived from the original (PDF) on 2011-07-24.
- "PSNC DRMAA for IBM LoadLeveler". 2010-12-20.
- "PSNC DRMAA for SLURM". 2010-12-20.
- "Python DRMAA2". 2018-07-27.
- Go DRMAA
- "DRMAA bindings for Python". January 2020.
- drmaa4ruby at github.com
- Tcl language bindings for DRMAAv1
- "DRMAA Success Stories".
- "LONI Pipeline Home Page".
- "Work Flow Project Home Page". Sourceforge.
- "EXLUDUS - MultiCore Optimization".
- "GE-GT Adapter". Archived from the original on 2009-05-19. CS1 maint: discouraged parameter (link)