StarPU Internal Handbook
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