[16] | 1 | #include <stdio.h> |
---|
| 2 | #include <stdlib.h> |
---|
| 3 | #include <llapi.h> |
---|
| 4 | |
---|
| 5 | #define CHAR_BUFFER 256 |
---|
| 6 | |
---|
| 7 | int createBulkCmd(char *prog, char *params, char *addr, size_t adrrLength, int start, int end, int incr) |
---|
| 8 | { |
---|
| 9 | int i,count = (end-start+1)/incr; |
---|
| 10 | FILE * fd; |
---|
| 11 | fd = fopen(addr,"wx"); |
---|
| 12 | if(fd!=NULL) |
---|
| 13 | { |
---|
| 14 | fprintf(fd,"# File created by LoadLeveler DRMAA. If no LL DRMAA aplications are running you can delete this file\n"); |
---|
| 15 | fprintf(fd,"# @ initialdir = %s\n","/home/mamon/michal/5_2_bulk"); |
---|
| 16 | fprintf(fd,"# @ executable = %s\n",prog); |
---|
| 17 | fprintf(fd,"# @ arguments = %s\n",params); |
---|
| 18 | fprintf(fd,"# @ output = $(executable).$(jobid).$(stepid).out\n"); //stepname? |
---|
| 19 | fprintf(fd,"# @ error = $(executable).$(jobid).$(stepid).err\n"); |
---|
| 20 | fprintf(fd,"# @ job_type = parallel\n"); |
---|
| 21 | for(i=0;i<count;i++) |
---|
| 22 | { |
---|
| 23 | //fprintf(fd,"# @ step_name = %s\n",start+i*incr); |
---|
| 24 | fprintf(fd,"# @ queue\n"); |
---|
| 25 | } |
---|
| 26 | fclose(fd); |
---|
| 27 | } |
---|
| 28 | else |
---|
| 29 | { |
---|
| 30 | perror("Can't create cmd file\n"); //przetestowac |
---|
| 31 | exit(1); |
---|
| 32 | } |
---|
| 33 | return 0; |
---|
| 34 | } |
---|
| 35 | |
---|
| 36 | int main(int argc, char *argv[]) |
---|
| 37 | { |
---|
| 38 | int i=0; |
---|
| 39 | LL_job test; |
---|
| 40 | int status; |
---|
| 41 | char templateCmd[] = "/tmp/drmaa_cmd_XXXXXX"; |
---|
| 42 | char *prog; |
---|
| 43 | if(argc<6) |
---|
| 44 | { |
---|
| 45 | printf("./a <program> <start> <end> <incr> [params] \n"); |
---|
| 46 | exit(1); |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | |
---|
| 50 | prog=mktemp(templateCmd); |
---|
| 51 | |
---|
| 52 | if(argc==6) |
---|
| 53 | createBulkCmd(argv[1],argv[5],prog,CHAR_BUFFER,atoi(argv[2]),atoi(argv[3]),atoi(argv[4])); |
---|
| 54 | else |
---|
| 55 | createBulkCmd(argv[1],"",prog,CHAR_BUFFER,atoi(argv[2]),atoi(argv[3]),atoi(argv[4])); |
---|
| 56 | |
---|
| 57 | status = llsubmit(prog,NULL,NULL,&test,LL_JOB_VERSION); |
---|
| 58 | |
---|
| 59 | remove(prog); |
---|
| 60 | printf("submitted bulk job with jobids:\n"); |
---|
| 61 | for(i=0;i<test.steps;i++) |
---|
| 62 | printf("\t\"%s.%s\"\n",test.job_name,test.step_list[i]->step_name); |
---|
| 63 | |
---|
| 64 | llfree_job_info(&test,LL_JOB_VERSION); |
---|
| 65 | |
---|
| 66 | return 0; |
---|
| 67 | } |
---|