drmaa_attributes.3




NAME

       drmaa_get_attribute_names, drmaa_get_vector_attribute_names,
       drmaa_get_next_attr_name, drmaa_get_num_attr_names,
       drmaa_release_attr_names - DRMAA job template attributes


SYNOPSIS

       #include "drmaa.h"

       int drmaa_get_attribute_names(
              drmaa_attr_names_t **values,
              char *error_diagnosis,
              size_t error_diag_len
       );

       int drmaa_get_vector_attribute_names(
              drmaa_attr_names_t **values,
              char *error_diagnosis,
              size_t error_diag_len
       );

       int drmaa_get_next_attr_name(
              drmaa_attr_names_t* values,
              char *value,
              int value_len
       );

       int drmaa_get_next_attr_value(
              drmaa_attr_values_t* values,
              char *value,
              int value_len
       );

       int drmaa_get_num_attr_names(
              drmaa_attr_names_t* values,
              int *size
       );

       void drmaa_release_attr_names(
              drmaa_attr_names_t* values
       );


DESCRIPTION

       The drmaa_get_attribute_names() function returns into values a DRMAA
       names string vector containing the set of supported non-vector DRMAA
       job template attribute names. The set includes supported DRMAA reserved
       attribute names and Grid Engine native attribute names. The names in
       the names string vector can be extracted using
       drmaa_get_next_attr_name(3).  The number of names in the names string
       vector can be determined using drmaa_get_num_attr_names(3).  Note that
       this function is only available in the 1.0 implementation.  The caller
       is responsible for releasing the names string vector returned into
       values using drmaa_release_attr_names(3).  Use drmaa_set_attribute(3)
       and drmaa_get_attribute(3) for setting and inspecting non-vector
       attributes.

   drmaa_get_vector_attribute_names()
       The drmaa_get_vector_attribute_names() function returns into values a
       DRMAA names string vector containing the set of supported vector DRMAA
       job template attribute names. The set includes supported DRMAA reserved
       attribute names and Grid Engine native attribute names. The names in
       the names string vector can be extracted using
       drmaa_get_next_attr_name(3).  The caller is responsible for releasing
       the names string vector returned into values using
       drmaa_release_attr_names(3).  Use drmaa_set_vector_attribute(3) and
       drmaa_get_vector_attribute(3) for setting and inspecting vector
       attributes.

   drmaa_get_next_attr_name()
       Each time drmaa_get_next_attr_name() is called it returns into the
       buffer, value, up to value_len bytes of the next entry stored in the
       DRMAA names string vector, values.  Once the names list has been
       exhausted, DRMAA_ERRNO_NO_MORE_ELEMENTS is returned.

   drmaa_get_num_attr_names()
       The drmaa_get_num_attr_names() returns into size the number of entries
       in the DRMAA names string vector.  This function is only available in
       the 1.0 implementation.

   drmaa_release_attr_names()
       The drmaa_release_attr_names() function releases all resources
       associated with the DRMAA names string vector, values.

   Attribute Priorities
       DRMAA job template attributes can be set from six different sources.
       In order of precedence, from lowest to highest, these are: options set
       by DRMAA automatically by default, options set in the sge_request(5)
       file(s), options set in the script file, options set by the
       drmaa_job_category attribute, options set by the
       drmaa_native_specification attribute, and options set through other
       DRMAA attributes.

       By default DRMAA sets four options for all jobs.  These are "-p 0", "-b
       yes", "-shell no", and "-w e".  This means that by default, all jobs
       will have priority 0, all jobs will be treated as binary, i.e. no
       scripts args will be parsed, all jobs will be executed without a
       wrapper shell, and jobs which are unschedulable will cause a submit
       error.

       The sge_request(5) file, found in the $SGE_ROOT/$SGE_CELL/common
       directory, may contain options to be applied to all jobs.  The
       .sge_request file found in the user's home directory or the current
       working directory may also contain options to be applied to certain
       jobs.  See sge_request(5) for more information.

       If the sge_request(5) file contains "-b no" or if the
       drmaa_native_specification attribute is set and contains "-b no", the
       script file will be parsed for in-line arguments.  Otherwise, no
       scripts args will be interpreted.  See qsub(1) for more information.

       If the drmaa_job_category attribute is set, and the category it points
       to exists in one of the qtask(5) files, the options associated with
       that category will be applied to the job template.  See qtask(5) and
       the drmaa_job_category attribute below for more information.

       If the drmaa_native_specification attribute is set, all options
       contained therein will be applied to the job template.  See the
       drmaa_native_specification below for more information.

       Other DRMAA attributes will override any previous settings.  For
       example, if the sge_request file contains "-j y", but the
       drmaa_join_files attribute is set to "n", the ultimate result is that
       the input and output files will remain separate.

       For various reasons, some options are silently ignored by DRMAA.
       Setting any of these options will have no effect.  The ignored options
       are: -cwd, -help, -sync, -t, -verify, -w w, and -w v.  The -cwd option
       can be re-enabled by setting the environment variable,
       SGE_DRMAA_ALLOW_CWD.  However, the -cwd option is not thread safe and
       should not be used in a multi-threaded context.

   Attribute Correlations
       The following DRMAA attributes correspond to the listed qsub(1)
       options:

              DRMAA Attribute                     qsub Option
              ---------------------------------------------------------
              drmaa_remote_command                script file
              drmaa_v_argv                        script file args
              drmaa_js_state = "drmaa_hold"       -h
              drmaa_v_env                         -v
              drmaa_wd = $PWD                     -cwd
              drmaa_job_category                  (qtsch qtask)*
              drmaa_native_specification          ALL*
              drmaa_v_email                       -M
              drmaa_block_email = "1"             -m n
              drmaa_start_time                    -a
              drmaa_job_name                      -N
              drmaa_input_path                    -i
              drmaa_output_path                   -o
              drmaa_error_path                    -e
              drmaa_join_files                    -j
              drmaa_transfer_files                (prolog and epilog)*

              * See the individual attribute description below


DRMAA JOB TEMPLATE ATTRIBUTES

   drmaa_remote_command - remote_command
       Specifies the remote command to execute. The remote_command must be the
       path of an executable that is available at the job's execution host.
       If the path is relative, it is assumed to be relative to the working
       directory, usually set through the drmaa_wd attribute.  If working
       directory is not set, the path is assumed to be relative to the user's
       home directory.

       The file pointed to by remote_command may either be an executable
       binary or an executable script.  If a script, it must include the path
       to the shell in a #! line at the beginning of the script.  By default,
       the remote command will be executed directly, as by exec(2).  To have
       the remote command executed in a shell, such as to preserve environment
       settings, use the drmaa_native_specification attribute to include the
       "-shell yes" option.  Jobs which are executed by a wrapper shell fail
       differently from jobs which are executed directly.  When a job which
       contains a user error, such as an invalid path to the executable, is
       executed by a wrapper shell, the job will execute successfully, but
       exit with a return code of 1.  When a job which contains such an error
       is executed directly, it will enter the DRMAA_PS_FAILED state upon
       execution.

   drmaa_js_state - {drmaa_hold|drmaa_active}
       Specifies the job state at submission. The string values 'drmaa_hold'
       and 'drmaa_active' are supported. When 'drmaa_active' is used the job
       is submitted in a runnable state.  When 'drmaa_hold' is used the job is
       submitted in user hold state (either DRMAA_PS_USER_ON_HOLD or
       DRMAA_PS_USER_SYSTEM_ON_HOLD). This attribute is largely equivalent to
       the qsub(1) submit option '-h'.

   drmaa_wd - directory_name
       Specifies the directory name where the job will be executed. A
       '$drmaa_hd_ph$' placeholder at the beginning of the directory_name
       denotes the remaining string portion as a relative directory name that
       is resolved relative to the job user's home directory at the execution
       host. When the DRMAA job template is used for bulk job submission (see
       also drmaa_run_bulk_job(3)) the '$drmaa_incr_ph$' placeholder can be
       used at any position within directory_name to cause a substitution with
       the parametric job's index.  The directory_name must be specified in a
       syntax that is common at the host where the job is executed. If set to
       a relative path and no placeholder is used, a path relative to the
       user's home directory is assumed.  If not set, the working directory
       will default to the user's home directory.  If set and the given
       directory does not exist the job will enter the DRMAA_PS_FAILED state
       when run.

       Note that the working directory path is the path on the execution host.
       If binary mode is disabled, an attempt to find the job script will be
       made, relative to the working directory path.  That means that the path
       to the script must be the same on both the submission and execution
       hosts.

   drmaa_job_name - job_name
       Specifies the job's name. Setting the job name is equivalent to use of
       qsub(1) submit option '-N' with job_name as option argument.

   drmaa_input_path - [hostname]:file_path
       Specifies the standard input of the job. Unless set elsewhere, if not
       explicitly set in the job template, the job is started with an empty
       input stream. If the standard input is set it specifies the network
       path of the job's input stream file.

       When the 'drmaa_transfer_files' job template attribute is supported and
       contains the character 'i', the input file will be fetched by Grid
       Engine from the specified host or from the submit host if no hostname
       is specified. When the 'drmaa_transfer_files' job template attribute is
       not supported or does not contain the character 'i', the input file is
       always expected at the host where the job is executed regardless of any
       hostname specified.

       If the DRMAA job template will be used for bulk job submission, (see
       also drmaa_run_bulk_job(3)) the '$drmaa_incr_ph$' placeholder can be
       used at any position within file_path to cause a substitution with the
       parametric job's index. A '$drmaa_hd_ph$' placeholder at the beginning
       of file_path denotes the remaining portion of the file_path as a
       relative file specification resolved relative to the job user's home
       directory at the host where the file is located. A '$drmaa_wd_ph$'
       placeholder at the beginning of file_path denotes the remaining portion
       of the file_path as a relative file specification resolved relative to
       the job's working directory at the host where the file is located. The
       file_path must be specified in a syntax that is common at the host
       where the file is located. If set and the file can't be read the job
       enters the state DRMAA_PS_FAILED.

   drmaa_output_path - [hostname]:file_path
       Specifies the standard output of the job. If not explicitly set in the
       job template, the whereabouts of the job's output stream is not
       defined. If set, this attribute specifies the network path of the job's
       output stream file.

       When the 'drmaa_transfer_files' job template attribute is supported and
       contains the character 'o', the output file will be transferred by Grid
       Engine to the specified host or to the submit host if no hostname is
       specified. When the 'drmaa_transfer_files' job template attribute is
       not supported or does not contain the character 'o', the output file is
       always kept at the host where the job is executed regardless of any
       hostname specified.

       If the DRMAA job template will be used for of bulk job submission (see
       also drmaa_run_bulk_job(3)) the '$drmaa_incr_ph$' placeholder can be
       used at any position within the file_path to cause a substitution with
       the parametric job's index.  A '$drmaa_hd_ph$' placeholder at the
       beginning of file_path denotes the remaining portion of the file_path
       as a relative file specification resolved relative to the job user's
       home directory at the host where the file is located. A '$drmaa_wd_ph$'
       placeholder at the beginning of the file_path denotes the remaining
       portion of file_path as a relative file specification resolved relative
       to the job's working directory at the host where the file is located.
       The file_path must be specified in a syntax that is common at the host
       where the file is located. If set and the file can't be written before
       execution the job enters the state DRMAA_PS_FAILED.

   drmaa_error_path - [hostname]:file_path
       Specifies the standard error of the job. If not explicitly set in the
       job template, the whereabouts of the job's error stream is not defined.
       If set, this attribute specifies the network path of the job's error
       stream file.

       When the 'drmaa_transfer_files' job template attribute is supported and
       contains the character 'e', the output file will be transferred by Grid
       Engine to the specified host or to the submit host if no hostname is
       specified. When the 'drmaa_transfer_files' job template attribute is
       not supported or does not contain the character 'e', the error file is
       always kept at the host where the job is executed regardless of any
       hostname specified.

       If the DRMAA job template will be used for of bulk job submission (see
       also drmaa_run_bulk_job(3)) the '$drmaa_incr_ph$' placeholder can be
       used at any position within the file_path to cause a substitution with
       the parametric job's index.  A '$drmaa_hd_ph$' placeholder at the
       beginning of the file_path denotes the remaining portion of the
       file_path as a relative file specification resolved relative to the job
       user's home directory at the host where the file is located. A
       '$drmaa_wd_ph$' placeholder at the beginning of the file_path denotes
       the remaining portion of the file_path as a relative file specification
       resolved relative to the job's working directory at the host where the
       file is located. The file_path must be specified in a syntax that is
       common at the host where the file is located. If set and the file can't
       be written before execution the job enters the state DRMAA_PS_FAILED.
       The attribute name is drmaa_error_path.


   drmaa_join_files - {y|n}
       Specifies if the job's error stream should be intermixed with the
       output stream.  If not explicitly set in the job template the attribute
       defaults to 'n'. Either 'y' or 'n' can be specified. If 'y' is
       specified Grid Engine will ignore the value of the 'drmaa_error_path'
       job template attribute and intermix the standard error stream with the
       standard output stream as specified with 'drmaa_output_path'.

   drmaa_submit_as_euid - {y|n}
       Specifies whether the jobs submitted using the job template will will
       run under the authority of the real or the effective user and group ID.
       If not explicitly set in the job template, the attribute defaults to
       'n'. Either 'y' or 'n' can be specified.  If 'y' is specified Grid
       Engine will use the effective user and group ID, otherwise the real
       user and group ID is used.

       With MUNGE security the euid is always used.  (See bootstrap(5) for
       information on security settings.)

   drmaa_v_argv - argv1 argv2 ...
       Specifies the arguments to the job.

   drmaa_job_category - category
       Specifies the DRMAA job category. The category string is used by Grid
       Engine as a reference into the qtask(5) file. Certain qsub(1) options
       used in the referenced qtask file line are applied to the job template
       before submission to allow site-specific resolving of resources and/or
       policies.  The cluster qtask file, the local qtask file, and the user
       qtask file are searched. Job settings resulting from job template
       category are overridden by settings resulting from the job template
       drmaa_native_specification attribute as well as by explicit DRMAA job
       template settings.

       In order to avoid collisions with command names in the qtask files, it
       is recommended that DRMAA job category names take the form:
       <category_name>.cat.

       The options -help, -sync, -t, -verify, and -w w|v are ignored.  The
       -cwd option is ignored unless the $SGE_DRMAA_ALLOW_CWD environment
       variable is set.

   drmaa_native_specification - native_specification
       Specifies Grid Engine native qsub(1) options which will be interpreted
       as part of the DRMAA job template.  All options available to qsub(1)
       command may be used in the native_specification, except for -help,
       -sync, -t, -verify, and -w w|v.  The -cwd option may only be used if
       the SGE_DRMAA_ALLOW_CWD environment variable is set.  This is because
       the current parsing algorithm for -cwd is not thread-safe.  Options set
       in the native specification will be overridden by the corresponding
       DRMAA attributes.  See qsub(1) for more information on qsub options.

   drmaa_v_env - name1=value1 name2=value2 ...
       Specifies the job environment. Each environment value defines the
       remote environment. The value overrides the remote environment values
       if there is a collision.

   drmaa_v_email - email1 email2 ...
       Specifies e-mail addresses that are used to report the job completion
       and status.

   drmaa_block_email - {0|1}
       Specifies whether e-mail sending shall blocked or not.  By default
       email is not sent.  If, however, a setting in a cluster or user
       settings file or the 'drmaa_native_specification' or
       'drmaa_job_category' attribute enables sending email in association
       with job events, the 'drmaa_block_email' attribute will override that
       setting, causing no email to be sent.

   drmaa_start_time - [[[[CC]YY/]MM/]DD] hh:mm[:ss] [{-|+}UU:uu]
       Specifies the earliest time when the job may be eligible to be run
       where

              CC is the first two digits of the year (century-1)
              YY is the last two digits of the year
              MM is the two digits of the month [01,12]
              DD is the two digit day of the month [01,31]
              hh is the two digit hour of the day [00,23]
              mm is the two digit minute of the day [00,59]
              ss is the two digit second of the minute [00,61]
              UU is the two digit hours since (before) UTC
              uu is the two digit minutes since (before) UTC

       If the optional UTC-offset is not specified, the offset associated with
       the local timezone will be used. If the day (DD) is not specified, the
       current day will be used unless the specified hour:mm:ss has already
       elapsed, in which case the next day will be used.  Similarly for month
       (MM), year (YY), and century-1 (CC).  Example: The time: Sep 3 4:47:27
       PM PDT 2002, could be represented as: 2002/09/03 16:47:27 -07:00.

   drmaa_transfer_files - [i][o][e]
       Specifies, which of the standard I/O files (stdin, stdout and stderr)
       are to be transferred to/from the execution host. If not set, defaults
       to "". Any combination of 'e', 'i' and 'o' may be specified.  See
       drmaa_input_path, drmaa_output_path and drmaa_error_path for
       information about how to specify the standard input file, standard
       output file and standard error file.  The file transfer mechanism
       itself must be configured by the administrator (see sge_conf(5)).  When
       it is configured, the administrator has to enable drmaa_transfer_files.
       If it is not configured, "drmaa_transfer_files" is not enabled and
       can't be used.


ENVIRONMENTAL VARIABLES

       SGE_ROOT       Specifies the location of the Grid Engine standard
                      configuration files.

       SGE_CELL       If set, specifies the default Grid Engine cell to be
                      used. To address a Grid Engine cell 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.


       SGE_QMASTER_PORT
                      If set, specifies the tcp port on which sge_qmaster(8)
                      is expected to listen for communication requests.  Most
                      installations will use a services map entry instead to
                      define that port.

       SGE_DEBUG_LEVEL
                      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.

       SGE_DRMAA_ALLOW_CWD
                      Enables the parsing of the -cwd option from the
                      sge_request file(s), job category, and/or the native
                      specification attribute.  This option is disabled by
                      default because the algorithm for parsing the -cwd
                      option is not thread-safe.


RETURN VALUES

       Upon successful completion, drmaa_get_attribute_names(),
       drmaa_get_vector_attribute_names(), and drmaa_get_next_attr_name()
       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.


ERRORS

       The drmaa_get_attribute_names(), drmaa_get_vector_attribute_names(),
       and drmaa_get_next_attr_name() functions will fail if:

   DRMAA_ERRNO_INTERNAL_ERROR
       Unexpected or internal DRMAA error, like system call failure, etc.

   DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE
       Could not contact DRM system for this request.

   DRMAA_ERRNO_AUTH_FAILURE
       The specified request is not processed successfully due to
       authorization failure.

   DRMAA_ERRNO_INVALID_ARGUMENT
       The input value for an argument is invalid.

   DRMAA_ERRNO_NO_ACTIVE_SESSION
       Failed because there is no active session.

   DRMAA_ERRNO_NO_MEMORY
       Failed allocating memory.

       The drmaa_get_next_attr_name() will fail if:

   DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE
       When there are no more entries in the vector.


SEE ALSO

       drmaa_jobtemplate(3) and drmaa_submit(3).



SGE 8.1.3pre                      2008-08-07               drmaa_attributes(3)

Man(1) output converted with man2html