The Grid Resource Allocation and Management (GRAM) service was one of the first Globus services. What we now call pre-Web Services GRAM service (or “GRAM2”) first appeared back in 1999, and it has since been widely deployed on grids around the world.
We have been working for a while on a new, Web Services-based GRAM service (“GRAM4”). This process has taken much longer than we would have liked, but a positive outcome has been that the final product is (IMHO) really good.
A new paper describes the many improvements that GRAM4 offers over GRAM2 in functionality, scalability, and manageability. On the performance side: GRAM4 is faster in the case of many concurrent submissions, but slower for sequential submissions and when file staging is involved. However, we are not far off, and we are working on further optimizations.
The paper is just five (fairly dense) pages long, so I hope you'll read it. The following table summarizes the key differentiators in the functionality space; details are provided in the text. In each case, shading indicates that GRAM4 provides superior capabilities to GRAM2.
It is important to recognize that this long list of GRAM features does not translate into a complex service for the user. The GRAM client interfaces are simple; this rich functionality ensures that remote job execution, monitoring, and management are secure, reliable, and efficient.
|
Feature |
GRAM2 |
GRAM4 |
|
1) Security |
||
|
Privilege limiting model |
Gatekeeper
as root |
Service
with sudo privileges |
|
Authentication options |
TLS |
TLS,
Secure Message, WS-Security |
|
Credential delegation |
Yes
(required) |
Yes
(optional) |
|
Credential refresh |
Yes |
Yes |
|
Share credentials among jobs |
No |
Yes |
|
Authorization callouts |
Yes
(single PDP callout) |
Yes
(PDP callout chain) |
|
2)
File Management |
||
|
File staging |
Yes |
Yes |
|
File staging retry policy |
None |
RFT
supported |
|
Incremental output staging (“streaming”) |
Stdout,
stderr only |
stdout, stderr, & any
output files |
|
Standard input access |
Yes
(from file) |
Yes
(from file) |
|
Throttle staging work |
No |
Yes |
|
Load balance staging work |
No |
Yes |
|
3)
General |
||
|
Access protocol |
GRAM-specific
HTTP |
Web
Services, SOAP |
|
Job description language |
RSL |
JDD |
|
Extensible job description language |
Yes |
Yes |
|
Local resource manager interface |
PERL
scripts |
PERL
scripts |
|
Local resource managers |
Fork,
Condor, SGE, PBS, LSF, LoadLeveler, ... |
Fork,
Condor, SGE, PBS, LSF, LoadLeveler, GridWay, … |
|
Fault tolerance |
Yes
(client initiated) |
Yes
(service initiated) |
|
State access: pull |
Yes |
Yes |
|
State access: push (subscription) |
Yes:
callbacks |
Yes:
WS-Notification |
|
Audit logging |
Yes
(experimental) |
Yes
(experimental) |
|
At most once job submission |
Yes
(2 phase commit) |
Yes
(UUID on create) |
|
Job cancellation |
Yes |
Yes |
|
Job lifetime management |
Yes |
Yes |
|
Maximum active jobs |
~250 |
32,000 |
|
Parallel job support |
Yes |
Yes |
|
MPICH-G support |
Yes |
Yes |
|
Basic Execution Service (BES) interface |
No |
Prototyped |

Comments