A task description. More...
#include <work_queue.h>
Data Fields | |
char * | tag |
An optional user-defined logical name for the task. | |
char * | command_line |
The program(s) to execute, as a shell command line. | |
work_queue_schedule_t | worker_selection_algorithm |
How to choose worker to run the task. | |
char * | output |
The standard output of the task. | |
struct list * | input_files |
The files to transfer to the worker and place in the executing directory. | |
struct list * | output_files |
The output files (other than the standard output stream) created by the program to be retrieved from the task. | |
struct list * | env_list |
Environment variables applied to the task. | |
int | taskid |
A unique task id number. | |
int | return_status |
The exit code of the command line. | |
work_queue_result_t | result |
The result of the task (see work_queue_result_t. | |
char * | host |
The address and port of the host on which it ran. | |
char * | hostname |
The name of the host on which it ran. | |
char * | category |
User-provided label for the task. | |
category_allocation_t | resource_request |
See category_allocation_t. | |
double | priority |
The priority of this task relative to others in the queue: higher number run earlier. | |
int | max_retries |
Number of times the task is tried to be executed on some workers until success. | |
int | try_count |
The number of times the task has been dispatched to a worker. | |
int | exhausted_attempts |
Number of times the task failed given exhausted resources. | |
timestamp_t | time_when_submitted |
The time at which this task was added to the queue. | |
timestamp_t | time_when_done |
The time at which the task is mark as retrieved, after transfering output files and other final processing. | |
int | disk_allocation_exhausted |
Non-zero if a task filled its loop device allocation, zero otherwise. | |
timestamp_t | time_when_commit_start |
The time when the task starts to be transfered to a worker. | |
timestamp_t | time_when_commit_end |
The time when the task is completely transfered to a worker. | |
timestamp_t | time_when_retrieval |
The time when output files start to be transfered back to the master. | |
timestamp_t | time_workers_execute_last |
Duration of the last complete execution for this task. | |
timestamp_t | time_workers_execute_all |
Accumulated time for executing the command on any worker, regardless of whether the task completed (i.e., this includes time running on workers that disconnected). | |
timestamp_t | time_workers_execute_exhaustion |
Accumulated time spent in attempts that exhausted resources. | |
timestamp_t | time_workers_execute_failure |
Accumulated time for runs that terminated in worker failure/disconnection. | |
int64_t | bytes_received |
Number of bytes received since task has last started receiving input data. | |
int64_t | bytes_sent |
Number of bytes sent since task has last started sending input data. | |
int64_t | bytes_transferred |
Number of bytes transferred since task has last started transferring input data. | |
struct rmsummary * | resources_allocated |
Resources allocated to the task its latest attempt. | |
struct rmsummary * | resources_measured |
When monitoring is enabled, it points to the measured resources used by the task in its latest attempt. | |
struct rmsummary * | resources_requested |
Number of cores, disk, memory, time, etc. | |
char * | monitor_output_directory |
Custom output directory for the monitoring output files. | |
timestamp_t | time_task_submit |
timestamp_t | time_task_finish |
timestamp_t | time_committed |
timestamp_t | time_send_input_start |
timestamp_t | time_send_input_finish |
timestamp_t | time_receive_result_start |
timestamp_t | time_receive_result_finish |
timestamp_t | time_receive_output_start |
timestamp_t | time_receive_output_finish |
timestamp_t | time_execute_cmd_start |
timestamp_t | time_execute_cmd_finish |
timestamp_t | total_transfer_time |
timestamp_t | cmd_execution_time |
timestamp_t | total_cmd_execution_time |
timestamp_t | total_cmd_exhausted_execute_time |
timestamp_t | total_time_until_worker_failure |
int64_t | total_bytes_received |
int64_t | total_bytes_sent |
int64_t | total_bytes_transferred |
timestamp_t | time_app_delay |
A task description.
This structure should only be created with work_queue_task_create and delete with work_queue_task_delete. You may examine (but not modify) this structure once a task has completed.
char* work_queue_task::tag |
An optional user-defined logical name for the task.
The program(s) to execute, as a shell command line.
How to choose worker to run the task.
char* work_queue_task::output |
The standard output of the task.
struct list* work_queue_task::input_files [read] |
The files to transfer to the worker and place in the executing directory.
struct list* work_queue_task::output_files [read] |
The output files (other than the standard output stream) created by the program to be retrieved from the task.
struct list* work_queue_task::env_list [read] |
Environment variables applied to the task.
A unique task id number.
The exit code of the command line.
The result of the task (see work_queue_result_t.
char* work_queue_task::host |
The address and port of the host on which it ran.
The name of the host on which it ran.
User-provided label for the task.
It is expected that all task with the same category will have similar resource usage. See work_queue_task_specify_category. If no explicit category is given, the label "default" is used.
category_allocation_t work_queue_task::resource_request |
See category_allocation_t.
double work_queue_task::priority |
The priority of this task relative to others in the queue: higher number run earlier.
Number of times the task is tried to be executed on some workers until success.
If less than one, the task is retried indefinitely. See try_count below.
The number of times the task has been dispatched to a worker.
If larger than max_retries, the task failes with WORK_QUEUE_RESULT_MAX_RETRIES.
Number of times the task failed given exhausted resources.
The time at which this task was added to the queue.
The time at which the task is mark as retrieved, after transfering output files and other final processing.
Non-zero if a task filled its loop device allocation, zero otherwise.
The time when the task starts to be transfered to a worker.
The time when the task is completely transfered to a worker.
The time when output files start to be transfered back to the master.
time_done - time_when_retrieval is the time taken to transfer output files.
Duration of the last complete execution for this task.
Accumulated time for executing the command on any worker, regardless of whether the task completed (i.e., this includes time running on workers that disconnected).
Accumulated time spent in attempts that exhausted resources.
Accumulated time for runs that terminated in worker failure/disconnection.
int64_t work_queue_task::bytes_received |
Number of bytes received since task has last started receiving input data.
int64_t work_queue_task::bytes_sent |
Number of bytes sent since task has last started sending input data.
Number of bytes transferred since task has last started transferring input data.
struct rmsummary* work_queue_task::resources_allocated [read] |
Resources allocated to the task its latest attempt.
struct rmsummary* work_queue_task::resources_measured [read] |
When monitoring is enabled, it points to the measured resources used by the task in its latest attempt.
struct rmsummary* work_queue_task::resources_requested [read] |
Number of cores, disk, memory, time, etc.
the task requires.
Custom output directory for the monitoring output files.
If NULL, save to directory from work_queue_enable_monitoring