Main Page | Modules | Data Structures | File List | Data Fields | Globals

src/drmaa.h

Go to the documentation of this file.
00001 /* $Id: drmaa.h,v 1.15 2006/09/08 18:18:08 ciesnik Exp $ */
00052 #ifndef __DRMAA_H
00053 #define __DRMAA_H
00054 
00055 #include <stddef.h>
00056 #include <stdio.h>
00057 
00061 /* @{ */
00062 
00063 typedef struct drmaa_job_template_s  drmaa_job_template_t;
00064 typedef struct drmaa_attr_names_s    drmaa_attr_names_t;
00065 typedef struct drmaa_attr_values_s   drmaa_attr_values_t;
00066 typedef struct drmaa_job_ids_s       drmaa_job_ids_t;
00067 
00068 #define DRMAA_ATTR_BUFFER         1024
00069 #define DRMAA_CONTACT_BUFFER      1024
00070 #define DRMAA_DRM_SYSTEM_BUFFER   1024
00071 #define DRMAA_DRMAA_IMPL_BUFFER   1024
00072 #define DRMAA_ERROR_STRING_BUFFER 1024
00073 #define DRMAA_JOBNAME_BUFFER      1024
00074 #define DRMAA_SIGNAL_BUFFER         32
00075 
00076 #define DRMAA_TIMEOUT_NO_WAIT            0
00077 #define DRMAA_TIMEOUT_WAIT_FOREVER       -1
00078 #define DRMAA_PS_UNDETERMINED            0x00
00079 #define DRMAA_PS_QUEUED_ACTIVE           0x10
00080 #define DRMAA_PS_SYSTEM_ON_HOLD          0x11
00081 #define DRMAA_PS_USER_ON_HOLD            0x12
00082 #define DRMAA_PS_USER_SYSTEM_ON_HOLD     0x13
00083 #define DRMAA_PS_RUNNING                 0x20
00084 #define DRMAA_PS_SYSTEM_SUSPENDED        0x21
00085 #define DRMAA_PS_USER_SUSPENDED          0x22
00086 #define DRMAA_PS_USER_SYSTEM_SUSPENDED   0x23
00087 #define DRMAA_PS_DONE                    0x30
00088 #define DRMAA_PS_FAILED                  0x40
00089 #define DRMAA_CONTROL_SUSPEND            0
00090 #define DRMAA_CONTROL_RESUME             1
00091 #define DRMAA_CONTROL_HOLD               2
00092 #define DRMAA_CONTROL_RELEASE            3
00093 #define DRMAA_CONTROL_TERMINATE          4
00094 #define DRMAA_JOB_IDS_SESSION_ALL        "DRMAA_JOB_IDS_SESSION_ALL"
00095 #define DRMAA_JOB_IDS_SESSION_ANY        "DRMAA_JOB_IDS_SESSION_ANY"
00096 
00097 #define DRMAA_BLOCK_EMAIL             "drmaa_block_email"
00098 #define DRMAA_DEADLINE_TIME           "drmaa_deadline_time"
00099 #define DRMAA_DURATION_HLIMIT         "drmaa_duration_hlimit"
00100 #define DRMAA_DURATION_SLIMIT         "drmaa_duration_slimit"
00101 #define DRMAA_ERROR_PATH              "drmaa_error_path"
00102 #define DRMAA_INPUT_PATH              "drmaa_input_path"
00103 #define DRMAA_JOB_CATEGORY            "drmaa_job_category"
00104 #define DRMAA_JOB_NAME                "drmaa_job_name"
00105 #define DRMAA_JOIN_FILES              "drmaa_join_files"
00106 #define DRMAA_JS_STATE                "drmaa_js_state"
00107 #define DRMAA_NATIVE_SPECIFICATION    "drmaa_native_specification"
00108 #define DRMAA_OUTPUT_PATH             "drmaa_output_path"
00109 #define DRMAA_REMOTE_COMMAND          "drmaa_remote_command"
00110 #define DRMAA_START_TIME              "drmaa_start_time"
00111 #define DRMAA_TRANSFER_FILES          "drmaa_transfer_files"
00112 #define DRMAA_V_ARGV                  "drmaa_v_argv"
00113 #define DRMAA_V_EMAIL                 "drmaa_v_email"
00114 #define DRMAA_V_ENV                   "drmaa_v_env"
00115 #define DRMAA_WCT_HLIMIT              "drmaa_wct_hlimit"
00116 #define DRMAA_WCT_SLIMIT              "drmaa_wct_slimit"
00117 #define DRMAA_WD                      "drmaa_wd"
00118 
00119 #define DRMAA_SUBMISSION_STATE_ACTIVE "drmaa_active"
00120 #define DRMAA_SUBMISSION_STATE_HOLD   "drmaa_hold"
00121 #define DRMAA_PLACEHOLDER_HD          "$drmaa_hd_ph$"
00122 #define DRMAA_PLACEHOLDER_WD          "$drmaa_wd_ph$"
00123 #define DRMAA_PLACEHOLDER_INCR        "$drmaa_incr_ph$"
00124 
00125 #define DRMAA_ERRNO_SUCCESS                               0
00126 #define DRMAA_ERRNO_INTERNAL_ERROR                        1
00127 #define DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE             2
00128 #define DRMAA_ERRNO_AUTH_FAILURE                          3
00129 #define DRMAA_ERRNO_INVALID_ARGUMENT                      4
00130 #define DRMAA_ERRNO_NO_ACTIVE_SESSION                     5
00131 #define DRMAA_ERRNO_NO_MEMORY                             6
00132 #define DRMAA_ERRNO_INVALID_CONTACT_STRING                7
00133 #define DRMAA_ERRNO_DEFAULT_CONTACT_STRING_ERROR          8
00134 #define DRMAA_ERRNO_NO_DEFAULT_CONTACT_STRING_SELECTED    9
00135 #define DRMAA_ERRNO_DRMS_INIT_FAILED                     10
00136 #define DRMAA_ERRNO_ALREADY_ACTIVE_SESSION               11
00137 #define DRMAA_ERRNO_DRMS_EXIT_ERROR                      12
00138 #define DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT             13
00139 #define DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE              14
00140 #define DRMAA_ERRNO_CONFLICTING_ATTRIBUTE_VALUES         15
00141 #define DRMAA_ERRNO_TRY_LATER                            16
00142 #define DRMAA_ERRNO_DENIED_BY_DRM                        17
00143 #define DRMAA_ERRNO_INVALID_JOB                          18
00144 #define DRMAA_ERRNO_RESUME_INCONSISTENT_STATE            19
00145 #define DRMAA_ERRNO_SUSPEND_INCONSISTENT_STATE           20
00146 #define DRMAA_ERRNO_HOLD_INCONSISTENT_STATE              21
00147 #define DRMAA_ERRNO_RELEASE_INCONSISTENT_STATE           22
00148 #define DRMAA_ERRNO_EXIT_TIMEOUT                         23
00149 #define DRMAA_ERRNO_NO_RUSAGE                            24
00150 #define DRMAA_ERRNO_NO_MORE_ELEMENTS                     25
00151 
00152 #if defined(__cplusplus)
00153 extern "C" {
00154 #endif
00155 
00156 
00172 int drmaa_init(
00173   const char *contact,
00174   char *error_diagnosis, size_t error_diag_len
00175   );
00176 
00187 int drmaa_exit( char *error_diagnosis, size_t error_diag_len );
00188 
00189 
00190 
00199 int drmaa_allocate_job_template(
00200   drmaa_job_template_t **jt,
00201   char *error_diagnosis,
00202   size_t error_diag_len
00203   );
00204 
00210 int drmaa_delete_job_template(
00211   drmaa_job_template_t *jt,
00212   char *error_diagnosis, size_t error_diag_len
00213   );
00214 
00220 int drmaa_set_attribute(
00221   drmaa_job_template_t *jt,
00222   const char *name, const char *value,
00223   char *error_diagnosis, size_t error_diag_len
00224   );
00225 
00231 int drmaa_get_attribute(
00232   drmaa_job_template_t *jt,
00233   const char *name, char *value, size_t value_len,
00234   char *error_diagnosis, size_t error_diag_len
00235   );
00236 
00243 int drmaa_set_vector_attribute(
00244   drmaa_job_template_t *jt,
00245   const char *name, const char *value[],
00246   char *error_diagnosis, size_t error_diag_len
00247   );
00248 
00254 int drmaa_get_vector_attribute(
00255   drmaa_job_template_t *jt,
00256   const char *name, drmaa_attr_values_t **values,
00257   char *error_diagnosis, size_t error_diag_len
00258   );
00259 
00260 
00261 
00269 int drmaa_get_attribute_names(
00270   drmaa_attr_names_t **values,
00271   char *error_diagnosis, size_t error_diag_len
00272   );
00273 
00281 int drmaa_get_vector_attribute_names(
00282   drmaa_attr_names_t **values,
00283   char *error_diagnosis, size_t error_diag_len
00284   );
00285 
00304 /* @addtogroup drmaa_viter @{ */
00305 int drmaa_get_next_attr_name( drmaa_attr_names_t* values,
00306   char *value, size_t value_len );
00307 int drmaa_get_next_attr_value( drmaa_attr_values_t* values,
00308   char *value, size_t value_len );
00309 int drmaa_get_next_job_id( drmaa_job_ids_t* values,
00310   char *value, size_t value_len );
00311 int drmaa_get_num_attr_names( drmaa_attr_names_t* values, size_t *size );
00312 int drmaa_get_num_attr_values(drmaa_attr_values_t* values, size_t *size );
00313 int drmaa_get_num_job_ids( drmaa_job_ids_t* values, size_t *size );
00314 void drmaa_release_attr_names( drmaa_attr_names_t* values );
00315 void drmaa_release_attr_values( drmaa_attr_values_t* values );
00316 void drmaa_release_job_ids( drmaa_job_ids_t* values );
00317 /* @} */
00318 
00325 int drmaa_run_job(
00326   char *job_id, size_t job_id_len, const drmaa_job_template_t *jt,
00327   char *error_diagnosis, size_t error_diag_len
00328   );
00329 
00351 int drmaa_run_bulk_jobs(
00352   drmaa_job_ids_t **jobids,
00353   const drmaa_job_template_t *jt,
00354   int start, int end, int incr,
00355   char *error_diagnosis,
00356   size_t error_diag_len
00357   );
00358 
00374 int drmaa_control(
00375   const char *job_id, int action,
00376   char *error_diagnosis, size_t error_diag_len
00377   );
00378 
00396 int drmaa_job_ps(
00397   const char *job_id, int *remote_ps,
00398   char *error_diagnosis, size_t error_diag_len
00399   );
00400 
00429 int drmaa_synchronize(
00430   const char *job_ids[], signed long timeout, int dispose,
00431   char *error_diagnosis, size_t error_diag_len
00432   );
00433 
00479 int drmaa_wait(
00480   const char *job_id,
00481   char *job_id_out, size_t job_id_out_len, int *stat,
00482   signed long timeout, drmaa_attr_values_t **rusage,
00483   char *error_diagnosis, size_t error_diag_len
00484   );
00485 
00486 int drmaa_wifexited( int *exited, int stat,
00487   char *error_diagnosis, size_t error_diag_len );
00488 int drmaa_wexitstatus( int *exit_status, int stat,
00489   char *error_diagnosis, size_t error_diag_len );
00490 int drmaa_wifsignaled( int *signaled, int stat,
00491   char *error_diagnosis, size_t error_diag_len );
00492 int drmaa_wtermsig( char *signal, size_t signal_len, int stat,
00493   char *error_diagnosis, size_t error_diag_len );
00494 int drmaa_wcoredump( int *core_dumped, int stat,
00495   char *error_diagnosis, size_t error_diag_len );
00496 int drmaa_wifaborted( int *aborted, int stat,
00497   char *error_diagnosis, size_t error_diag_len );
00498 
00503 const char *drmaa_strerror( int drmaa_errno );
00504 
00513 int drmaa_get_contact( char *contact, size_t contact_len,
00514   char *error_diagnosis, size_t error_diag_len );
00515 
00521 int drmaa_version( unsigned int *major, unsigned int *minor,
00522   char *error_diagnosis, size_t error_diag_len );
00523 
00530 int drmaa_get_DRM_system( char *drm_system, size_t drm_system_len,
00531   char *error_diagnosis, size_t error_diag_len );
00532 
00540 int drmaa_get_DRMAA_implementation( char *drmaa_impl, size_t drmaa_impl_len,
00541   char *error_diagnosis, size_t error_diag_len );
00542 
00543 #if defined(__cplusplus)
00544 } /* extern "C" */
00545 #endif
00546 
00547 /* @} */
00548 
00549 
00550 /*
00551  * Functions outside of DRMAA specification.
00552  */
00553 
00559 void drmaa_set_logging_output( FILE *file );
00560 
00561 #endif /* __DRMAA_H */
00562 

Generated on Fri Jul 4 21:57:01 2008 for torque by  doxygen 1.3.9.1