Ticket #799: 202

File 202, 2.5 KB (added by dlove, 9 years ago)
Line 
1#include <stdlib.h>
2#include <stdio.h>
3#include "drmaa.h"
4
5int main (int argc, char **argv) {
6   char error[DRMAA_ERROR_STRING_BUFFER];
7   int errnum = 0;
8   drmaa_job_template_t *jt = NULL;
9
10   errnum = drmaa_init (NULL, error, DRMAA_ERROR_STRING_BUFFER);
11
12   if (errnum != DRMAA_ERRNO_SUCCESS) {
13      fprintf (stderr, "Could not initialize the DRMAA library: %s\n", error);
14      return 1;
15   }
16
17   errnum = drmaa_allocate_job_template (&jt, error, DRMAA_ERROR_STRING_BUFFER);
18
19   if (errnum != DRMAA_ERRNO_SUCCESS) {
20      fprintf (stderr, "Could not create job template: %s\n", error);
21   }
22   else {
23      errnum = drmaa_set_attribute (jt, DRMAA_REMOTE_COMMAND, "sleeper.sh",
24                                    error, DRMAA_ERROR_STRING_BUFFER);
25
26      if (errnum != DRMAA_ERRNO_SUCCESS) {
27         fprintf (stderr, "Could not set attribute \"%s\": %s\n",
28                  DRMAA_REMOTE_COMMAND, error);
29      } else {
30        errnum = drmaa_set_attribute (jt, DRMAA_NATIVE_SPECIFICATION,
31                                      "-l mem_free=1G",
32                                      error, DRMAA_ERROR_STRING_BUFFER);
33      }
34
35      if (errnum != DRMAA_ERRNO_SUCCESS) {
36         fprintf (stderr, "Could not set attribute \"%s\": %s\n",
37                  DRMAA_NATIVE_SPECIFICATION, error);
38      } else {
39         const char *args[2] = {"5", NULL};
40         
41         errnum = drmaa_set_vector_attribute (jt, DRMAA_V_ARGV, args, error,
42                                              DRMAA_ERROR_STRING_BUFFER);
43      }
44     
45      if (errnum != DRMAA_ERRNO_SUCCESS) {
46         fprintf (stderr, "Could not set attribute \"%s\": %s\n",
47                  DRMAA_REMOTE_COMMAND, error);
48      }
49      else {
50         char jobid[DRMAA_JOBNAME_BUFFER];
51
52         errnum = drmaa_run_job (jobid, DRMAA_JOBNAME_BUFFER, jt, error,
53                                 DRMAA_ERROR_STRING_BUFFER);
54
55         if (errnum != DRMAA_ERRNO_SUCCESS) {
56            fprintf (stderr, "Could not submit job: %s\n", error);
57         }
58         else {
59            printf ("Your job has been submitted with id %s\n", jobid);
60         }
61      } /* else */
62
63      errnum = drmaa_delete_job_template (jt, error, DRMAA_ERROR_STRING_BUFFER);
64
65      if (errnum != DRMAA_ERRNO_SUCCESS) {
66         fprintf (stderr, "Could not delete job template: %s\n", error);
67      }
68   } /* else */
69
70   errnum = drmaa_exit (error, DRMAA_ERROR_STRING_BUFFER);
71
72   if (errnum != DRMAA_ERRNO_SUCCESS) {
73      fprintf (stderr, "Could not shut down the DRMAA library: %s\n", error);
74      return 1;
75   }
76
77   return 0;
78}