Resource Management (GRAM)
The Globus Toolkit includes a set of service components collectively referred to as the Globus Resource Allocation Manager (GRAM). GRAM simplifies the use of remote systems by providing a single standard interface for requesting and using remote system resources for the execution of "jobs". The most common use (and the best supported use) of GRAM is remote job submission and control. This is typically used to support distributed computing applications.
For most Grid-based projects, we recommend using GRAM as a project-wide standard for remote job submission and resource management.
GRAM is designed to provide a single common protocol and API for requesting and using remote system resources, by providing a uniform, flexible interface to, local job scheduling systems. The Grid Security Infrastructure (GSI) provides mutual authentication of both users and remote resources using GSI (Grid-wide) PKI-based identities. GRAM provides a simple authorization mechanism based on GSI identities and a mechanism to map GSI identities to local user accounts.
GRAM reduces the number of mechanisms required for using remote resources (such as remote compute systems). Local systems may use a wide variety of management mechanisms (schedulers, queuing systems, reservation systems, and control interfaces), but users and application developers need to learn how to use only one (*GRAM*) to request and use these resources. This capability is consistent with the "hourglass" role played by most of the Globus Toolkit's components: GRAM is the neck of the hourglass, with applications and higher-level services (such as resource brokers or metaschedulers) above it and local control and access mechanisms below it, as shown in the below figure. Both sides need work only with GRAM, so the number of interactions, APIs, and protocols that need to be used are greatly reduced.
GRAM does not provide accounting and billing features. It is assumed that these features-if needed-are being supplied by local management mechanisms such as a queuing system or scheduler.