StarPU Internal Handbook
tags.h File Reference
#include <starpu.h>
#include <common/config.h>
#include <common/starpu_spinlock.h>
#include <core/dependencies/cg.h>

Go to the source code of this file.

Data Structures

struct  _starpu_tag
 

Macros

#define _STARPU_TAG_SIZE
 

Enumerations

enum  _starpu_tag_state {
  STARPU_INVALID_STATE , STARPU_ASSOCIATED , STARPU_BLOCKED , STARPU_READY ,
  STARPU_DONE
}
 

Functions

void _starpu_init_tags (void)
 
void _starpu_notify_tag_dependencies (struct _starpu_tag *tag)
 
void _starpu_notify_job_start_tag_dependencies (struct _starpu_tag *tag, _starpu_notify_job_start_data *data)
 
void _starpu_tag_declare (starpu_tag_t id, struct _starpu_job *job)
 
void _starpu_tag_set_ready (struct _starpu_tag *tag)
 
unsigned _starpu_submit_job_enforce_task_deps (struct _starpu_job *j)
 
void _starpu_tag_clear (void)
 

Data Structure Documentation

◆ _starpu_tag

struct _starpu_tag
Data Fields
struct _starpu_spinlock lock

Lock for this structure. Locking order is in dependency order: a tag must not be locked before locking a tag it depends on

starpu_tag_t id

an identifier for the task

enum _starpu_tag_state state
struct _starpu_cg_list tag_successors
struct _starpu_job * job

which job is associated to the tag if any ?

unsigned is_assigned
unsigned is_submitted

Enumeration Type Documentation

◆ _starpu_tag_state

Enumerator
STARPU_INVALID_STATE 

this tag is not declared by any task

STARPU_ASSOCIATED 

_starpu_tag_declare was called to associate the tag to a task

STARPU_BLOCKED 

some task dependencies are not fulfilled yet

STARPU_READY 

the task can be (or has been) submitted to the scheduler (all deps fulfilled)

STARPU_DONE 

the task has been performed

Function Documentation

◆ _starpu_tag_set_ready()

void _starpu_tag_set_ready ( struct _starpu_tag tag)

lock should be taken, and this releases it