source: experiments/5_2_bulk/a.c @ 16

Revision 16, 1.7 KB checked in by mmatloka, 14 years ago (diff)

add experiments

Line 
1#include <stdio.h>
2#include <stdlib.h>
3#include <llapi.h>
4
5#define CHAR_BUFFER 256
6
7int 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
36int 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}
Note: See TracBrowser for help on using the repository browser.