Note

The Grid Community Toolkit documentation was taken from the Globus Toolkit 6.0 documentation. As a result, there may be inaccuracies and outdated information. Please report any problems to the Grid Community Forums as GitHub issues.

GCTGRAM 5 → GCT 6.0 Migrating Guide for GRAM5

The following provides available information about migrating from previous versions of the Globus Toolkit.

Migrating GRAM from GT4.2

The GRAM5 protocol has been designed to be backward compatible with GRAM2 protocol from GT 4.2.x. There is no compatibility between GRAM5 and the GRAM4 protocol.

Admin - Migration Guide

Audit Logging

GRAM5 supports generating audit records the same as GRAM2. It also adds support for a Teragrid-specific Gateway User field in the audit records. The globus_gram_job_manager_auditing package contains the audit database interface code. The globus_gram_job_manager_auditing_setup setup package configures this package. GRAM5 auditing is enabled by using the -audit-directory command-line option in the job manager configuration file. For more information about GRAM5 audit support, see the GRAM5 admin guide.

User - Migration Guide

Command-line Tools

GRAM5 provides the globusrun program to submit jobs to GRAM5 services. It no longer supports multi-request (duroc or MPI) jobs. GRAM5 does not provide the globusrun-ws as it does not support the WSRF protocols.

Developer - Migration Guide

API Changes

The GRAM5 version of the GRAM Client API adds support for receiving protocol extension information in callbacks and responses. All GRAM Client API functions from GRAM2 are provided in the GRAM5 API. The DUROC, DUCT, and Nexus APIs are no longer provided in GRAM5.

Migrating GRAM from GT4.0

The GRAM5 protocol has been designed to be backward compatible with GRAM2 protocol from GT 4.0.x. There is no compatibility between GRAM5 and the GRAM4 protocol.

Admin - Migration Guide

Audit Logging

GRAM5 supports generating audit records the same as GRAM2. It also adds support for a Teragrid-specific Gateway User field in the audit records. The globus_gram_job_manager_auditing package contains the audit database interface code. The globus_gram_job_manager_auditing_setup setup package configures this package. GRAM5 auditing is enabled by using the -audit-directory command-line option in the job manager configuration file. For more information about GRAM5 audit support, see the GRAM5 admin guide.

User - Migration Guide

Command-line Tools

GRAM5 provides the globusrun program to submit jobs to GRAM5 services. It no longer supports multi-request (duroc or MPI) jobs. GRAM5 does not provide the globusrun-ws as it does not support the WSRF protocols.

Developer - Migration Guide

API Changes

The GRAM5 version of the GRAM Client API adds support for receiving protocol extension information in callbacks and responses. All GRAM Client API functions from GRAM2 are provided in the GRAM5 API. The DUROC, DUCT, and Nexus APIs are no longer provided in GRAM5.

Migrating GRAM from GT3

The GRAM5 protocol has been designed to be backward compatible with GRAM2 protocol from GT 3.0.x. There is no compatibility between GRAM5 and the Web Service GRAM protocol GT3.

Migrating GRAM from GT2

Admin - Migration Guide

Installation / Deployment Differences

In GRAM2, jobs are submitted to a job manager process started by a Gatekeeper process. In GRAM5, the job submit protocol is the same; however, all jobs for a particular user and LRM run in the same job manager process.

Security Differences

Proxies and Delegation

In GRAM2, the GRAM client is required to delegate a proxy credential to the Gatekeeper so that the job manager can send authenticated job state change messages. Because each job is monitored by a separate job manager in GRAM2, each job manager has access to a different delegated credential. In GRAM5, the shared job manager uses the delegated credential with the latest expiration time as its credential.

In GRAM2, the client can control the job manager proxy timeout by setting the value of proxy_timeout RSL attribute to a time interval in seconds indicating when the job manager will exit if the proxy is about to expire. In GRAM5, this is a job manager-wide setting and the proxy_timeout RSL attribute is ignored.

Network Communication

In GRAM2, the standard output and standard error streams of a job may be sent in near real time to a file server such as the GASS server embedded in a globusrun execution. In GRAM5 the same RSL syntax is used to name output and error stream destinations, but those are not sent until after the job execution is complete.

In GRAM2, the job manager implements intra-job communication via DUCT and task synchronization via DUROC. These features have been dropped in GRAM5.

GRAM5 adds various protocol extensions to the GRAM2 protocol. This is done in a way such that the existing GRAM2 protocol processors will ignore the extensions to the messages. Details about the protocol and its extensions can be found in the GRAM5 public interface document.

LRM Interaction Differences

In GRAM2, all file system and LRM interactions occur within a perl module called by the globus-job-manager-script.pl program. Scheduler-specific perl modules implement a number of methods which are used by the job manager:

  • submit

  • poll

  • cancel

  • signal

  • make_scratchdir

  • remove_scratchdir

  • stage_in

  • stage_out

  • cache_cleanup

  • remote_io_file_create

  • proxy_relocate

  • proxy_update

Only a small set of these script methods are used in the GRAM5 implementation. The subset used is:

  • submit

  • signal (called when not using SEG)

  • poll (called when not using SEG)

  • cancel

Some of the functionality has been moved into the job manager or other services for performance reasons.

Local Node Impact

In GRAM2, each job submitted would cause the following processes to be created:

  • gatekeeper (short lived)

  • job manager (lives the duration of the job)

  • perl script (short lived 4 or more instances depending on job type)

  • perl script poll called periodically

In GRAM5, each job causes the following processes to be created

  • globus-gatekeeper (short lived)

  • globus-job-manager (short lived for all but one concurrent instance)

  • globus-job-manager-script (up to 5 per lifetime of the job manager)

  • globus-fork-starter (up to 5 per job manager when using the fork LRM and the SEG).

Additionally, there will be a per-scheduler instance of the SEG-related program, globus-job-manager-event-generator.

User - Migration Guide

Command Line Tools

The globusrun tool in GRAM2 supports DUROC and MPICH-G jobs. This feature has been removed in GRAM5, as well as the command-line options related to it.

Developer - API and RSL Migration Guide

The DUROC and DUCT APIs have been removed in GRAM5.