work_queue_task Struct Reference

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 * | coprocess
| The name of the coprocess name in the worker that executes this task.
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.
int | fast_abort_count
| Number of times this task has been terminated for running too long.
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.
int64_t | min_running_time
| Minimum time (in seconds) the task needs to run.
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 manager.
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.
char * | monitor_snapshot_file
| Filename the monitor checks to produce snapshots.
struct list * | features
| User-defined features this task requires.
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

## Detailed Description

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.

## Field Documentation

## tag

char* work_queue_task::tag

An optional user-defined logical name for the task.

## command_line

char* work_queue_task::command_line

The program(s) to execute, as a shell command line.

## worker_selection_algorithm

work_queue_schedule_t work_queue_task::worker_selection_algorithm

How to choose worker to run the task.

## output

char* work_queue_task::output

The standard output of the task.

## input_files

struct list* work_queue_task::input_files

The files to transfer to the worker and place in the executing directory.

## output_files

struct list* work_queue_task::output_files

The output files (other than the standard output stream) created by the program to be retrieved from the task.

## env_list

struct list* work_queue_task::env_list

Environment variables applied to the task.

## taskid

int work_queue_task::taskid

A unique task id number.

## return_status

int work_queue_task::return_status

The exit code of the command line.

## result

work_queue_result_t work_queue_task::result

The result of the task (see work_queue_result_t.

## host

char* work_queue_task::host

The address and port of the host on which it ran.

## hostname

char* work_queue_task::hostname

The name of the host on which it ran.

## coprocess

char* work_queue_task::coprocess

The name of the coprocess name in the worker that executes this task.

For regular tasks it is NULL.

## category

char* work_queue_task::category

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.

## resource_request

category_allocation_t work_queue_task::resource_request

See category_allocation_t.

## priority

double work_queue_task::priority

The priority of this task relative to others in the queue: higher number run earlier.

## max_retries

int work_queue_task::max_retries

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.

## try_count

int work_queue_task::try_count

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.

## exhausted_attempts

int work_queue_task::exhausted_attempts

Number of times the task failed given exhausted resources.

## fast_abort_count

int work_queue_task::fast_abort_count

Number of times this task has been terminated for running too long.

## time_when_submitted

timestamp_t work_queue_task::time_when_submitted

The time at which this task was added to the queue.

## time_when_done

timestamp_t work_queue_task::time_when_done

The time at which the task is mark as retrieved, after transfering output files and other final processing.

## disk_allocation_exhausted

int work_queue_task::disk_allocation_exhausted

Non-zero if a task filled its loop device allocation, zero otherwise.

## min_running_time

int64_t work_queue_task::min_running_time

Minimum time (in seconds) the task needs to run.

(see work_queue_worker –wall-time) All fields of the form time_* in microseconds.

## time_when_commit_start

timestamp_t work_queue_task::time_when_commit_start

The time when the task starts to be transfered to a worker.

## time_when_commit_end

timestamp_t work_queue_task::time_when_commit_end

The time when the task is completely transfered to a worker.

## time_when_retrieval

timestamp_t work_queue_task::time_when_retrieval

The time when output files start to be transfered back to the manager.

time_done - time_when_retrieval is the time taken to transfer output files.

## time_workers_execute_last

timestamp_t work_queue_task::time_workers_execute_last

Duration of the last complete execution for this task.

## time_workers_execute_all

timestamp_t work_queue_task::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).

## time_workers_execute_exhaustion

timestamp_t work_queue_task::time_workers_execute_exhaustion

Accumulated time spent in attempts that exhausted resources.

## time_workers_execute_failure

timestamp_t work_queue_task::time_workers_execute_failure

Accumulated time for runs that terminated in worker failure/disconnection.

## bytes_received

int64_t work_queue_task::bytes_received

Number of bytes received since task has last started receiving input data.

## bytes_sent

int64_t work_queue_task::bytes_sent

Number of bytes sent since task has last started sending input data.

## bytes_transferred

int64_t work_queue_task::bytes_transferred

Number of bytes transferred since task has last started transferring input data.

## resources_allocated

struct rmsummary* work_queue_task::resources_allocated

Resources allocated to the task its latest attempt.

## resources_measured

struct rmsummary* work_queue_task::resources_measured

When monitoring is enabled, it points to the measured resources used by the task in its latest attempt.

## resources_requested

struct rmsummary* work_queue_task::resources_requested

Number of cores, disk, memory, time, etc.

the task requires.

## monitor_output_directory

char* work_queue_task::monitor_output_directory

Custom output directory for the monitoring output files.

If NULL, save to directory from work_queue_enable_monitoring

## monitor_snapshot_file

char* work_queue_task::monitor_snapshot_file

Filename the monitor checks to produce snapshots.

## features

struct list* work_queue_task::features

User-defined features this task requires.

(See work_queue_worker's –feature option.)

## time_task_submit

timestamp_t work_queue_task::time_task_submit

Deprecated
  Use time_when_submitted.

## time_task_finish

timestamp_t work_queue_task::time_task_finish

Deprecated
  Use time_when_done.

## time_committed

timestamp_t work_queue_task::time_committed

Deprecated
  Use time_when_commit_start.

## time_send_input_start

timestamp_t work_queue_task::time_send_input_start

Deprecated
  Use time_when_commit_start.

## time_send_input_finish

timestamp_t work_queue_task::time_send_input_finish

Deprecated
  Use time_when_commit_end.

## time_receive_result_start

timestamp_t work_queue_task::time_receive_result_start

Deprecated
  Use time_when_retrieval instead.

## time_receive_result_finish

timestamp_t work_queue_task::time_receive_result_finish

Deprecated
  Use time_when_done instead.

## time_receive_output_start

timestamp_t work_queue_task::time_receive_output_start

Deprecated
  Use time_when_retrieval.

## time_receive_output_finish

timestamp_t work_queue_task::time_receive_output_finish

Deprecated
  Use time_when_done instead.

## time_execute_cmd_start

timestamp_t work_queue_task::time_execute_cmd_start

Deprecated
  Use time_when_commit_end instead.

## time_execute_cmd_finish

timestamp_t work_queue_task::time_execute_cmd_finish

Deprecated
  Use time_when_retrieval instead.

## total_transfer_time

timestamp_t work_queue_task::total_transfer_time

Deprecated
  Use (time_when_commit_end - time_when_commit_start) + (time_when_done - time_when_retrieval).

## cmd_execution_time

timestamp_t work_queue_task::cmd_execution_time

Deprecated
  Use time_workers_execute_last instead.

## total_cmd_execution_time

timestamp_t work_queue_task::total_cmd_execution_time

Deprecated
  Use time_workers_execute_all instead.

## total_cmd_exhausted_execute_time

timestamp_t work_queue_task::total_cmd_exhausted_execute_time

Deprecated
  Use time_workers_execute_exhaustion instead.

## total_time_until_worker_failure

timestamp_t work_queue_task::total_time_until_worker_failure

Deprecated
  Use time_workers_execute_failure instead.

## total_bytes_received

int64_t work_queue_task::total_bytes_received

Deprecated
  Use bytes_received instead.

## total_bytes_sent

int64_t work_queue_task::total_bytes_sent

Deprecated
  Use bytes_sent instead.

## total_bytes_transferred

int64_t work_queue_task::total_bytes_transferred

Deprecated
  Use bytes_transferred instead.

## time_app_delay

timestamp_t work_queue_task::time_app_delay

Deprecated
  The time spent in upper-level application (outside of work_queue_wait).

The documentation for this struct was generated from the following file:

- work_queue.h