StarPU Internal Handbook

Data Structures | Functions
fifo_queues.h File Reference
`#include <starpu.h>`
`#include <core/task.h>`

Go to the source code of this file.

## Data Structures
struct | _starpu_fifo_taskq

## Functions
struct _starpu_fifo_taskq * | _starpu_create_fifo (void) STARPU_ATTRIBUTE_MALLOC
void | _starpu_destroy_fifo (struct _starpu_fifo_taskq *fifo)
int | _starpu_fifo_empty (struct _starpu_fifo_taskq *fifo)
double | _starpu_fifo_get_exp_len_prev_task_list (struct _starpu_fifo_taskq *fifo_queue, struct starpu_task *task, int workerid, int nimpl, int *fifo_ntasks)
int | _starpu_fifo_push_sorted_task (struct _starpu_fifo_taskq *fifo_queue, struct starpu_task *task)
int | _starpu_fifo_push_task (struct _starpu_fifo_taskq *fifo, struct starpu_task *task)
int | _starpu_fifo_push_back_task (struct _starpu_fifo_taskq *fifo_queue, struct starpu_task *task)
int | _starpu_fifo_pop_this_task (struct _starpu_fifo_taskq *fifo_queue, int workerid, struct starpu_task *task)
struct starpu_task * | _starpu_fifo_pop_task (struct _starpu_fifo_taskq *fifo, int workerid)
struct starpu_task * | _starpu_fifo_pop_local_task (struct _starpu_fifo_taskq *fifo)
struct starpu_task * | _starpu_fifo_pop_every_task (struct _starpu_fifo_taskq *fifo, int workerid)
int | _starpu_normalize_prio (int priority, int num_priorities, unsigned sched_ctx_id)
int | _starpu_count_non_ready_buffers (struct starpu_task *task, unsigned worker)
size_t | _starpu_size_non_ready_buffers (struct starpu_task *task, unsigned worker)
struct starpu_task * | _starpu_fifo_pop_first_ready_task (struct _starpu_fifo_taskq *fifo_queue, unsigned workerid, int num_priorities)

## Data Structure Documentation

## ◆ _starpu_fifo_taskq

struct _starpu_fifo_taskq

Data Fields
struct starpu_task_list | taskq | the actual list
unsigned | ntasks | the number of tasks currently in the queue
unsigned * | ntasks_per_priority | the number of tasks currently in the queue corresponding to each priority
unsigned | nprocessed | the number of tasks that were processed
double | exp_start | only meaningful if the queue is only used by a single worker
double | exp_end | Expected start date of next item to do in the queue (i.e. not started yet). This is thus updated when we start it.
double | exp_len | Expected end date of last task in the queue
double * | exp_len_per_priority | Expected duration of the set of tasks in the queue
double | pipeline_len | Expected duration of the set of tasks in the queue corresponding to each priority