HPC++ Remote Context Creation

Depending on the run-time system that HPC++Lib is compiled with, there are small differences in the API required to create contexts.

Context Creation with Globus

Context creation with globus is a two step process:

Authentication Check

In Globus, a process called the gatkeeper is used to start contexts on remote machines (the gatekeeper is started through inetd). The gatekeeper is responsible for ensuring that the client requesting remote context creation has sufficient priviledge to create a process on that machine, and then to actually start the context (again, the gatekeeper starts something called as a globus-job-manager process, which in turn starts the actual context). Assuming that an HPC++ client context wants to start a context on a machine called caledonia.cs.indiana.edu, it first needs to ensure that it has the proper authority to connect to a gatekeeper running on that machine. This is accomplished through the following call:

Actual Context Creation

Once the client checks its authentication for the gatekeeper's machine, it can call the following function in order to start the remote context:
HPCxx_ContextID *remoteCID = 
The first parameter is the machine name, and the second one is the path of the executable to be run. The call returns a context ID for the remote context, so that the client context can make remote invocations on it.

Context Creation with Nexus

In the Nexus based HPC++, remote context creation is done through rsh, and so the first step required in the case of the Globus based HPC++ is not required. So, for Nexus, new context creation is a single step process as illustrated by the following function call:
HPCxx_ContextID *remoteCID = 
The online tutorial examples section contains a detailed example illustrating remote context creation using Globus.

Last modified: Wed Apr 21 19:40:15 EST 1999