StarPU Internal Handbook
|
#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) |
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 |
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 |
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 |
struct _starpu_cg.succ.succ_apps |
#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