StarPU Internal Handbook

Data Structures | Functions
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 | ) |
| inline static

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
| ) |  |
| inline static

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 | ) |
| inline static

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