StarPU Internal Handbook
Loading...
Searching...
No Matches
cg.h File Reference
#include <starpu.h>
#include <common/config.h>

Go to the source code of this file.

Data Structures

struct  _starpu_cg_list
 
struct  _starpu_cg
 
union  _starpu_cg.succ
 
struct  _starpu_cg.succ.succ_apps
 

Macros

#define STARPU_DYNAMIC_DEPS_SIZE
 

Typedefs

typedef struct _starpu_notify_job_start_data _starpu_notify_job_start_data
 

Enumerations

enum  _starpu_cg_type { STARPU_CG_APPS , STARPU_CG_TAG , STARPU_CG_TASK }
 

Functions

void _starpu_notify_dependencies (struct _starpu_job *j)
 
void _starpu_job_notify_start (struct _starpu_job *j, struct starpu_perfmodel_arch *perf_arch)
 
void _starpu_job_notify_ready_soon (struct _starpu_job *j, _starpu_notify_job_start_data *data)
 
void _starpu_cg_list_init0 (struct _starpu_cg_list *list)
 
void _starpu_cg_list_deinit (struct _starpu_cg_list *list)
 
int _starpu_add_successor_to_cg_list (struct _starpu_cg_list *successors, struct _starpu_cg *cg)
 
int _starpu_list_task_successors_in_cg_list (struct _starpu_cg_list *successors, unsigned ndeps, struct starpu_task *task_array[])
 
int _starpu_list_task_scheduled_successors_in_cg_list (struct _starpu_cg_list *successors, unsigned ndeps, struct starpu_task *task_array[])
 
int _starpu_list_tag_successors_in_cg_list (struct _starpu_cg_list *successors, unsigned ndeps, starpu_tag_t tag_array[])
 
void _starpu_notify_cg (void *pred, struct _starpu_cg *cg)
 
void _starpu_notify_cg_list (void *pred, struct _starpu_cg_list *successors)
 
void _starpu_notify_job_start_cg_list (void *pred, struct _starpu_cg_list *successors, _starpu_notify_job_start_data *data)
 
void _starpu_notify_task_dependencies (struct _starpu_job *j)
 
void _starpu_notify_job_start_tasks (struct _starpu_job *j, _starpu_notify_job_start_data *data)
 

Data Structure Documentation

◆ _starpu_cg_list

struct _starpu_cg_list

Completion Group list, records both the number of expected notifications before the completion can start, and the list of successors when the completion is finished.

Data Fields
struct _starpu_spinlock lock

Protects atomicity of the list and the terminated flag

unsigned ndeps

Number of notifications to be waited for

unsigned ndeps_completed
unsigned terminated

Whether the completion is finished. For restartable/restarted tasks, only the first iteration is taken into account here.

unsigned nsuccs

List of successors

unsigned succ_list_size

How many allocated items in succ

struct _starpu_cg ** succ

◆ _starpu_cg

struct _starpu_cg

Completion Group

Data Fields
unsigned ntags

number of tags depended on

unsigned remaining

number of remaining tags

enum _starpu_cg_type cg_type
union _starpu_cg.succ succ

◆ _starpu_cg.succ

union _starpu_cg.succ
Data Fields
struct _starpu_tag * tag

STARPU_CG_TAG

struct _starpu_job * job

STARPU_CG_TASK

struct _starpu_cg.succ.succ_apps succ_apps

STARPU_CG_APPS in case this completion group is related to an application, we have to explicitely wake the waiting thread instead of reschedule the corresponding task

◆ _starpu_cg.succ.succ_apps

struct _starpu_cg.succ.succ_apps

STARPU_CG_APPS in case this completion group is related to an application, we have to explicitely wake the waiting thread instead of reschedule the corresponding task

Data Fields
unsigned completed
starpu_pthread_mutex_t cg_mutex
starpu_pthread_cond_t cg_cond

Macro Definition Documentation

◆ STARPU_DYNAMIC_DEPS_SIZE

#define STARPU_DYNAMIC_DEPS_SIZE

we do not necessarily want to allocate room for 256 dependencies, but we want to handle the few situation where there are a lot of dependencies as well