StarPU Internal Handbook
prio_deque.h File Reference
#include <starpu.h>
#include <starpu_scheduler.h>
#include <core/task.h>

Go to the source code of this file.

Data Structures

struct  _starpu_prio_deque
 

Functions

static void _starpu_prio_deque_init (struct _starpu_prio_deque *pdeque)
 
static void _starpu_prio_deque_destroy (struct _starpu_prio_deque *pdeque)
 
static int _starpu_prio_deque_is_empty (struct _starpu_prio_deque *pdeque)
 
static void _starpu_prio_deque_erase (struct _starpu_prio_deque *pdeque, struct starpu_task *task)
 
static int _starpu_prio_deque_push_front_task (struct _starpu_prio_deque *pdeque, struct starpu_task *task)
 
static int _starpu_prio_deque_push_back_task (struct _starpu_prio_deque *pdeque, struct starpu_task *task)
 
static struct starpu_task * _starpu_prio_deque_highest_task (struct _starpu_prio_deque *pdeque)
 
static struct starpu_task * _starpu_prio_deque_pop_task (struct _starpu_prio_deque *pdeque)
 
static struct starpu_task * _starpu_prio_deque_pop_back_task (struct _starpu_prio_deque *pdeque)
 
static int _starpu_prio_deque_pop_this_task (struct _starpu_prio_deque *pdeque, int workerid, struct starpu_task *task)
 
struct starpu_task * _starpu_prio_deque_pop_task_for_worker (struct _starpu_prio_deque *, int workerid, int *skipped)
 
struct starpu_task * _starpu_prio_deque_deque_task_for_worker (struct _starpu_prio_deque *, int workerid, int *skipped)
 
struct starpu_task * _starpu_prio_deque_deque_first_ready_task (struct _starpu_prio_deque *, unsigned workerid)
 

Data Structure Documentation

◆ _starpu_prio_deque

struct _starpu_prio_deque
Data Fields
struct starpu_task_prio_list list
unsigned ntasks
unsigned nprocessed
double exp_start
double exp_end
double exp_len

Function Documentation

◆ _starpu_prio_deque_is_empty()

static int _starpu_prio_deque_is_empty ( struct _starpu_prio_deque pdeque)
inlinestatic

return 0 iff the struct _starpu_prio_deque is not empty

◆ _starpu_prio_deque_push_front_task()

static int _starpu_prio_deque_push_front_task ( struct _starpu_prio_deque pdeque,
struct starpu_task *  task 
)
inlinestatic

push a task in O(lg(nb priorities))

◆ _starpu_prio_deque_pop_task()

static struct starpu_task* _starpu_prio_deque_pop_task ( struct _starpu_prio_deque pdeque)
inlinestatic

all _starpu_prio_deque_pop/deque_task function return a task or a NULL pointer if none are available in O(lg(nb priorities))

◆ _starpu_prio_deque_pop_task_for_worker()

struct starpu_task* _starpu_prio_deque_pop_task_for_worker ( struct _starpu_prio_deque ,
int  workerid,
int *  skipped 
)

return a task that can be executed by workerid

◆ _starpu_prio_deque_deque_task_for_worker()

struct starpu_task* _starpu_prio_deque_deque_task_for_worker ( struct _starpu_prio_deque ,
int  workerid,
int *  skipped 
)

return a task that can be executed by workerid