cctools
batch_job_internal.h
1 #ifndef BATCH_JOB_INTERNAL_H_
2 #define BATCH_JOB_INTERNAL_H_
3 
4 #include "batch_job.h"
5 #include "itable.h"
6 #include "mpi_queue.h"
7 #include "work_queue.h"
8 
9 #define BATCH_JOB_LINE_MAX 8192
10 
11 struct batch_queue {
12  batch_queue_type_t type;
13  char *logfile;
14  char *options_text;
15  struct itable *job_table;
16  struct itable *output_table;
17  struct itable *hadoop_jobs;
18  struct work_queue *work_queue;
19  struct mpi_queue *mpi_queue;
20 };
21 
22 batch_job_id_t batch_job_submit_simple_local(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
23 batch_job_id_t batch_job_submit_local(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
24 batch_job_id_t batch_job_wait_local(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
25 int batch_job_remove_local(struct batch_queue *q, batch_job_id_t jobid);
26 
27 batch_job_id_t batch_job_submit_simple_condor(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
28 batch_job_id_t batch_job_submit_condor(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
29 batch_job_id_t batch_job_wait_condor(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
30 int batch_job_remove_condor(struct batch_queue *q, batch_job_id_t jobid);
31 
32 int batch_job_setup_cluster(struct batch_queue *q);
33 batch_job_id_t batch_job_submit_simple_cluster(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
34 batch_job_id_t batch_job_submit_cluster(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
35 batch_job_id_t batch_job_wait_cluster(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
36 int batch_job_remove_cluster(struct batch_queue *q, batch_job_id_t jobid);
37 
38 batch_job_id_t batch_job_submit_simple_moab(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
39 batch_job_id_t batch_job_submit_moab(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
40 batch_job_id_t batch_job_wait_moab(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
41 int batch_job_remove_moab(struct batch_queue *q, batch_job_id_t jobid);
42 
43 batch_job_id_t batch_job_submit_simple_work_queue(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
44 batch_job_id_t batch_job_submit_work_queue(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
45 batch_job_id_t batch_job_wait_work_queue(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
46 int batch_job_remove_work_queue(struct batch_queue *q, batch_job_id_t jobid);
47 
48 batch_job_id_t batch_job_submit_simple_mpi_queue(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
49 batch_job_id_t batch_job_submit_mpi_queue(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
50 batch_job_id_t batch_job_wait_mpi_queue(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
51 int batch_job_remove_mpi_queue(struct batch_queue *q, batch_job_id_t jobid);
52 
53 batch_job_id_t batch_job_submit_simple_hadoop(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
54 batch_job_id_t batch_job_submit_hadoop(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
55 batch_job_id_t batch_job_wait_hadoop(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
56 int batch_job_remove_hadoop(struct batch_queue *q, batch_job_id_t jobid);
57 
58 batch_job_id_t batch_job_submit_simple_xgrid(struct batch_queue * q, const char *cmd, const char *extra_input_files, const char *extra_output_files);
59 batch_job_id_t batch_job_submit_xgrid(struct batch_queue * q, const char *cmd, const char *args, const char *infile, const char *outfile, const char *errfile, const char *extra_input_files, const char *extra_output_files);
60 batch_job_id_t batch_job_wait_xgrid(struct batch_queue * q, struct batch_job_info * info_out, time_t stoptime);
61 int batch_job_remove_xgrid(struct batch_queue *q, batch_job_id_t jobid);
62 
63 #endif
64 
Batch job submission.
A master-worker library.
batch_queue_type_t
Indicates which type of batch submission to use.
Definition: batch_job.h:24
Definition: work_queue.binding.py:1
An MPI implementation of Work Queue.
int batch_job_id_t
An integer type indicating a unique batch job number.
Definition: batch_job.h:21
Definition: batch_job_internal.h:11
Describes a batch job when it has completed.
Definition: batch_job.h:39
An integer-indexed hash table.