[16] | 1 | #include <stdio.h>
|
---|
| 2 | #include <drmaa.h>
|
---|
| 3 |
|
---|
| 4 | int main(int argc, char **argv) {
|
---|
| 5 | char error[DRMAA_ERROR_STRING_BUFFER];
|
---|
| 6 | int errnum = 0;
|
---|
| 7 | drmaa_job_template_t *jt = NULL;
|
---|
| 8 |
|
---|
| 9 | errnum = drmaa_init(NULL, error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 10 |
|
---|
| 11 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 12 | fprintf(stderr, "Could not initialize the DRMAA library: %s\n", error);
|
---|
| 13 | return 1;
|
---|
| 14 | }
|
---|
| 15 |
|
---|
| 16 | errnum = drmaa_allocate_job_template(&jt, error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 17 |
|
---|
| 18 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 19 | fprintf(stderr, "Could not create job template: %s\n", error);
|
---|
| 20 | } else {
|
---|
| 21 | errnum = drmaa_set_attribute(jt, DRMAA_REMOTE_COMMAND, "/bin/sleep", error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 22 |
|
---|
| 23 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 24 | fprintf(stderr, "Could not set attribute \"%s\": %s\n", DRMAA_REMOTE_COMMAND, error);
|
---|
| 25 | } else {
|
---|
| 26 | const char *args[2] = {"5", NULL};
|
---|
| 27 |
|
---|
| 28 | errnum = drmaa_set_vector_attribute(jt, DRMAA_V_ARGV, args, error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 29 | }
|
---|
| 30 |
|
---|
| 31 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 32 | fprintf(stderr, "Could not set attribute \"%s\": %s\n", DRMAA_REMOTE_COMMAND, error);
|
---|
| 33 | } else {
|
---|
| 34 | char jobid[DRMAA_JOBNAME_BUFFER];
|
---|
| 35 |
|
---|
| 36 | errnum = drmaa_run_job(jobid, DRMAA_JOBNAME_BUFFER, jt, error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 37 |
|
---|
| 38 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 39 | fprintf(stderr, "Could not submit job: %s\n", error);
|
---|
| 40 | }
|
---|
| 41 | else {
|
---|
| 42 | printf("Your job has been submitted with id %s\n", jobid);
|
---|
| 43 | }
|
---|
| 44 | } /* else */
|
---|
| 45 |
|
---|
| 46 | errnum = drmaa_delete_job_template(jt, error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 47 |
|
---|
| 48 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 49 | fprintf(stderr, "Could not delete job template: %s\n", error);
|
---|
| 50 | }
|
---|
| 51 | } /* else */
|
---|
| 52 |
|
---|
| 53 | errnum = drmaa_exit(error, DRMAA_ERROR_STRING_BUFFER);
|
---|
| 54 |
|
---|
| 55 | if (errnum != DRMAA_ERRNO_SUCCESS) {
|
---|
| 56 | fprintf(stderr, "Could not shut down the DRMAA library: %s\n", error);
|
---|
| 57 | return 1;
|
---|
| 58 | }
|
---|
| 59 |
|
---|
| 60 | return 0;
|
---|
| 61 | }
|
---|