|
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 explicitly 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