mpi_queue.h

00001 #ifndef MPI_QUEUE_H
00002 #define MPI_QUEUE_H
00003 
00004 #include "timestamp.h"
00005 
00006 
00007 #define MPI_QUEUE_LINE_MAX 256
00008 #define MPI_QUEUE_DEFAULT_PORT 9123
00009 
00010 #define MPI_QUEUE_WAITFORTASK -1
00011 
00012 #define MPI_QUEUE_RETURN_STATUS_UNSET -1
00013 #define MPI_QUEUE_RESULT_UNSET -1
00014 
00015 
00016 #define MPI_QUEUE_INPUT  0
00017 #define MPI_QUEUE_OUTPUT 1
00018 
00019 
00022 struct mpi_queue_task {
00023         char *tag;                      
00024         char *command_line;             
00025         char *output;                   
00026         struct list *input_files;       
00027         struct list *output_files;      
00028         int taskid;                     
00029         int status;                     
00030         int return_status;              
00031         int result;                     
00033         timestamp_t submit_time;                
00034         timestamp_t start_time;         
00035         timestamp_t finish_time;                
00036         timestamp_t transfer_start_time;        
00037         timestamp_t computation_time;   
00039         INT64_T total_bytes_transferred;        
00040         timestamp_t total_transfer_time;        
00041 };
00042 
00043 
00047 struct mpi_queue_task *mpi_queue_task_create(const char *full_command);
00048 
00056 void mpi_queue_task_specify_file(struct mpi_queue_task *t, const char *name, int type);
00057 
00058 
00064 void mpi_queue_task_specify_tag(struct mpi_queue_task *t, const char *tag);
00065 
00066 
00070 void mpi_queue_task_delete(struct mpi_queue_task *t);
00071 
00072 
00089 struct mpi_queue *mpi_queue_create(int port);
00090 
00096 void mpi_queue_submit(struct mpi_queue *q, struct mpi_queue_task *t);
00097 
00103 struct mpi_queue_task *mpi_queue_wait(struct mpi_queue *q, int timeout);
00104 
00108 int mpi_queue_empty(struct mpi_queue *q);
00109 
00114 int mpi_queue_port(struct mpi_queue *q);
00115 
00119 void mpi_queue_delete(struct mpi_queue *q);
00120 
00121 #endif
00122 

Generated on Sun Aug 14 23:01:35 2011 for cctools by  doxygen 1.6.1