StarPU Internal Handbook

Data Structures | Macros | Typedefs | Enumerations | Functions
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_init (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