int wavefront_task_submit_recursive( struct wavefront_task *n ) { int i,j; char command[PATH_MAX]; char filename[PATH_MAX]; char extra_output_files[PATH_MAX]; char *extra_input_files=NULL; string_nformat(command, PATH_MAX, "./wavefront -M -X %d -Y %d ./%s %d %d >output.%d.%d 2>&1", n->x,n->y,function,n->width,n->height,n->x,n->y); string_nformat(extra_output_files, PATH_MAX, "output.%d.%d",n->x,n->y); extra_input_files = string_format("wavefront,%s",function); for(i=-1;i<n->width;i++) { string_nformat(filename, PATH_MAX, "R.%d.%d", n->x+i,n->y-1); extra_input_files=string_combine(extra_input_files, ","); extra_input_files=string_combine(extra_input_files, filename); } for(j=0;j<n->height;j++) { string_nformat(filename, PATH_MAX, "R.%d.%d",n->x-1,n->y+j); extra_input_files=string_combine(extra_input_files, ","); extra_input_files=string_combine(extra_input_files, filename); } batch_job_id_t job_id = batch_job_submit_simple(batch_q,command,extra_input_files,extra_output_files); free(extra_input_files); return job_id; }
int wavefront_task_submit_recursive( struct wavefront_task *n ) { int i,j; char extra_input_files[PATH_MAX*100]; char extra_output_files[PATH_MAX]; char command[PATH_MAX]; char filename[PATH_MAX]; sprintf(command,"./wavefront -M -X %d -Y %d ./%s %d %d >output.%d.%d 2>&1",n->x,n->y,function,n->width,n->height,n->x,n->y); sprintf(extra_output_files,"output.%d.%d",n->x,n->y); sprintf(extra_input_files,"wavefront,%s",function); for(i=-1;i<n->width;i++) { strcat(extra_input_files,","); sprintf(filename,"R.%d.%d",n->x+i,n->y-1); strcat(extra_input_files,filename); } for(j=0;j<n->height;j++) { strcat(extra_input_files,","); sprintf(filename,"R.%d.%d",n->x-1,n->y+j); strcat(extra_input_files,filename); } return batch_job_submit_simple(batch_q,command,extra_input_files,extra_output_files); }
int wavefront_task_submit_single( struct wavefront_task *n ) { char command[PATH_MAX * 5]; //Ugly, fix, should be the value from sysconf(ARG_MAX) char leftfile[PATH_MAX]; char bottomfile[PATH_MAX]; char diagfile[PATH_MAX]; char extra_input_files[PATH_MAX*4]; string_nformat(leftfile, PATH_MAX, "R.%d.%d", n->x-1, n->y); string_nformat(bottomfile, PATH_MAX, "R.%d.%d", n->x, n->y-1); string_nformat(diagfile, PATH_MAX, "R.%d.%d", n->x-1, n->y-1); string_nformat(extra_input_files, PATH_MAX*4, "%s,%s,%s,%s", function,leftfile,bottomfile,diagfile); string_nformat(command, PATH_MAX * 5, "./%s %s %s %s >R.%d.%d", function,leftfile,bottomfile,diagfile,n->x,n->y); return batch_job_submit_simple(batch_q,command,extra_input_files,0); }
int wavefront_task_submit_single( struct wavefront_task *n ) { char command[PATH_MAX]; char leftfile[PATH_MAX]; char bottomfile[PATH_MAX]; char diagfile[PATH_MAX]; char extra_input_files[PATH_MAX*4]; sprintf(leftfile,"R.%d.%d",n->x-1,n->y); sprintf(bottomfile,"R.%d.%d",n->x,n->y-1); sprintf(diagfile,"R.%d.%d",n->x-1,n->y-1); sprintf(extra_input_files,"%s,%s,%s,%s",function,leftfile,bottomfile,diagfile); sprintf(command,"./%s %s %s %s >R.%d.%d",function,leftfile,bottomfile,diagfile,n->x,n->y); return batch_job_submit_simple(batch_q,command,extra_input_files,0); }