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 | } |
---|