StarPU Handbook
starpu_task_dep.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2009-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
4  * Copyright (C) 2011 Télécom-SudParis
5  * Copyright (C) 2016 Uppsala University
6  *
7  * StarPU is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU Lesser General Public License as published by
9  * the Free Software Foundation; either version 2.1 of the License, or (at
10  * your option) any later version.
11  *
12  * StarPU is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
17  */
18 
19 #ifndef __STARPU_TASK_DEP_H__
20 #define __STARPU_TASK_DEP_H__
21 
22 #include <starpu.h>
23 
24 #ifdef __cplusplus
25 extern "C"
26 {
27 #endif
28 
47 void starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
48 
56 void starpu_task_declare_deps(struct starpu_task *task, unsigned ndeps, ...);
57 
74 void starpu_task_declare_end_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
75 
83 void starpu_task_declare_end_deps(struct starpu_task *task, unsigned ndeps, ...);
84 
95 int starpu_task_get_task_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
96 
102 int starpu_task_get_task_scheduled_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
103 
109 void starpu_task_end_dep_add(struct starpu_task *t, int nb_deps);
110 
116 
127 typedef uint64_t starpu_tag_t;
128 
151 void starpu_tag_declare_deps(starpu_tag_t id, unsigned ndeps, ...);
152 
164 void starpu_tag_declare_deps_array(starpu_tag_t id, unsigned ndeps, starpu_tag_t *array);
165 
177 
182 int starpu_tag_wait_array(unsigned ntags, starpu_tag_t *id);
183 
192 
199 
212 
219 
220 struct starpu_task *starpu_tag_get_task(starpu_tag_t id);
221 
224 #ifdef __cplusplus
225 }
226 #endif
227 
228 #endif /* __STARPU_TASK_DEP_H__ */
Definition: starpu_task.h:567
void starpu_task_declare_end_deps(struct starpu_task *task, unsigned ndeps,...)
void starpu_task_end_dep_release(struct starpu_task *t)
void starpu_task_declare_end_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
int starpu_task_get_task_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_tag_declare_deps(starpu_tag_t id, unsigned ndeps,...)
void starpu_tag_notify_restart_from_apps(starpu_tag_t id)
void starpu_tag_declare_deps_array(starpu_tag_t id, unsigned ndeps, starpu_tag_t *array)
void starpu_task_end_dep_add(struct starpu_task *t, int nb_deps)
void starpu_tag_notify_from_apps(starpu_tag_t id)
uint64_t starpu_tag_t
Definition: starpu_task_dep.h:127
void starpu_task_declare_deps(struct starpu_task *task, unsigned ndeps,...)
void starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_tag_remove(starpu_tag_t id)
int starpu_task_get_task_scheduled_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_tag_restart(starpu_tag_t id)
int starpu_tag_wait(starpu_tag_t id)
int starpu_tag_wait_array(unsigned ntags, starpu_tag_t *id)