drmaa_init, drmaa_exit - Start/finish Sun Grid Engine DRMAA session
const char *contact,
The drmaa_init() function initializes the Sun Grid Engine DRMAA API
library for all threads of the process and creates a new DRMAA session.
This routine must be called once before any other DRMAA call, except
for drmaa_version(3), drmaa_get_DRM_system(3), and
drmaa_get_DRMAA_implementation(3). Except for the above listed
functions, no DRMAA functions may be called before the drmaa_init()
function completes. Any DRMAA function which is called before the
drmaa_init() function completes will return a
DRMAA_ERRNO_NO_ACTIVE_SESSION error. Contact is an implementation
dependent string which may be used to specify which Sun Grid Engine
cell to use. If contact is NULL, the default Sun Grid Engine cell will
be used. In the 1.0 implementation contact may have the following
value: session=<session_id>. To determine the session_id, the
drmaa_get_contact(3) function should be called after the session has
already been initialized. By passing the session=<session_id> string
to the drmaa_init() function, instead of creating a new session, DRMAA
will attempt to reconnect to the session indicated by the session_id.
The result of reconnecting to a previous session is that all jobs
previously submitted in that session that are still running will be
available in the DRMAA session. Note, however, that jobs which ended
before the call to drmaa_init() may not be available or may have no
associated exit information or resource usage data.
The drmaa_exit() function closes the DRMAA session for all threads and
must be called before process termination. The drmaa_exit() function
may be called only once by a single thread in the process and may only
be called after the drmaa_init() function has completed. Any DRMAA
function, other than drmaa_init(3), which is called after the
drmaa_exit() function completes will return a
The drmaa_exit() function does necessary clean up of the DRMAA session
state, including unregistering from the qmaster(8). If the
drmaa_exit() function is not called, the qmaster will store events for
the DRMAA client until the connection times out, causing extra work for
the qmaster and consuming system resources.
Submitted jobs are not affected by the drmaa_exit() function.
SGE_ROOT Specifies the location of the Sun Grid Engine standard
SGE_CELL If set, specifies the default Sun Grid Engine cell to be
used. To address a Sun Grid Engine cell Sun Grid Engine
uses (in the order of precedence):
The name of the cell specified in the environment
variable SGE_CELL, if it is set.
The name of the default cell, i.e. default.
If set, specifies that debug information should be
written to stderr. In addition the level of detail in
which debug information is generated is defined.
If set, specifies the tcp port on which the sge_qmaster
is expected to listen for communication requests. Most
installations will use a services map entry instead to
define that port.
Upon successful completion, drmaa_init() and drmaa_exit() return
DRMAA_ERRNO_SUCCESS. Other values indicate an error. Up to
error_diag_len characters of error related diagnosis information is
then provided in the buffer error_diagnosis.
The drmaa_init() and drmaa_exit() functions will fail if:
Unexpected or internal DRMAA error, like system call failure, etc.
Could not contact DRM system for this request.
The specified request is not processed successfully due to
The input value for an argument is invalid.
The drmaa_init() will fail if:
Initialization failed due to invalid contact string.
Could not use the default contact string to connect to DRM system.
Initialization failed due to failure to init DRM system.
Initialization failed due to existing DRMAA session.
Failed allocating memory.
The drmaa_exit() will fail if:
Failed because there is no active session.
DRM system disengagement failed.