StarPU Handbook
starpu_task_dep.h
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2011-2017 Inria
4  * Copyright (C) 2009-2018 Université de Bordeaux
5  * Copyright (C) 2010-2015,2017,2018,2019 CNRS
6  * Copyright (C) 2011 Télécom-SudParis
7  * Copyright (C) 2016 Uppsala University
8  *
9  * StarPU is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or (at
12  * your option) any later version.
13  *
14  * StarPU is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17  *
18  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
19  */
20 
21 #ifndef __STARPU_TASK_DEP_H__
22 #define __STARPU_TASK_DEP_H__
23 
24 #include <starpu.h>
25 
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif
30 
49 void starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
50 
58 void starpu_task_declare_deps(struct starpu_task *task, unsigned ndeps, ...);
59 
76 void starpu_task_declare_end_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
77 
85 void starpu_task_declare_end_deps(struct starpu_task *task, unsigned ndeps, ...);
86 
97 int starpu_task_get_task_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
98 
104 int starpu_task_get_task_scheduled_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
105 
111 void starpu_task_end_dep_add(struct starpu_task *t, int nb_deps);
112 
118 
129 typedef uint64_t starpu_tag_t;
130 
153 void starpu_tag_declare_deps(starpu_tag_t id, unsigned ndeps, ...);
154 
166 void starpu_tag_declare_deps_array(starpu_tag_t id, unsigned ndeps, starpu_tag_t *array);
167 
178 int starpu_tag_wait(starpu_tag_t id);
179 
184 int starpu_tag_wait_array(unsigned ntags, starpu_tag_t *id);
185 
193 void starpu_tag_restart(starpu_tag_t id);
194 
200 void starpu_tag_remove(starpu_tag_t id);
201 
213 void starpu_tag_notify_from_apps(starpu_tag_t id);
214 
215 struct starpu_task *starpu_tag_get_task(starpu_tag_t id);
216 
219 #ifdef __cplusplus
220 }
221 #endif
222 
223 #endif /* __STARPU_TASK_DEP_H__ */
void starpu_task_end_dep_release(struct starpu_task *t)
void starpu_tag_declare_deps(starpu_tag_t id, unsigned ndeps,...)
void starpu_tag_restart(starpu_tag_t id)
void starpu_task_declare_end_deps(struct starpu_task *task, unsigned ndeps,...)
uint64_t starpu_tag_t
Definition: starpu_task_dep.h:129
Definition: starpu_task.h:548
int starpu_tag_wait(starpu_tag_t id)
void starpu_tag_remove(starpu_tag_t id)
void starpu_task_end_dep_add(struct starpu_task *t, int nb_deps)
void starpu_task_declare_end_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_task_declare_deps(struct starpu_task *task, unsigned ndeps,...)
int starpu_tag_wait_array(unsigned ntags, starpu_tag_t *id)
int starpu_task_get_task_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])
void starpu_tag_declare_deps_array(starpu_tag_t id, unsigned ndeps, starpu_tag_t *array)
void starpu_tag_notify_from_apps(starpu_tag_t id)
int starpu_task_get_task_scheduled_succs(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[])