Go to the documentation of this file.
17 #ifndef __COHERENCY__H__
18 #define __COHERENCY__H__
23 #include <common/config.h>
29 #include <common/list.h>
36 enum _starpu_cache_state
46 starpu_data_handle_t handle;
57 enum _starpu_cache_state
state: 2;
83 struct _starpu_data_request *request[STARPU_MAXNODES];
86 struct _starpu_mem_chunk *
mc;
89 struct _starpu_data_requester_prio_list;
100 struct starpu_task *task;
107 struct starpu_task *task;
112 extern int _starpu_has_not_important_data;
114 typedef void (*_starpu_data_handle_unregister_hook)(starpu_data_handle_t);
120 struct _starpu_data_requester_prio_list req_list;
141 starpu_pthread_mutex_t busy_mutex;
142 starpu_pthread_cond_t busy_cond;
153 unsigned sibling_index;
177 unsigned active_ro:1;
183 struct starpu_data_interface_ops *ops;
214 struct starpu_task *last_sync_task;
224 unsigned long last_submitted_ghost_sync_id;
229 unsigned post_sync_tasks_cnt;
240 struct starpu_codelet *init_cl;
252 starpu_data_handle_t *reduction_tmp_handles;
257 unsigned lazy_unregister;
260 unsigned removed_from_context_hash;
266 _starpu_memory_stats_t memory_stats;
268 unsigned int mf_node;
273 struct starpu_arbiter *arbiter;
282 int partition_automatic_disabled;
301 enum starpu_data_access_mode mode,
unsigned detached,
unsigned is_prefetch,
unsigned async,
302 void (*callback_func)(
void *),
void *callback_arg,
int prio,
const char *origin);
307 void _starpu_update_data_state(starpu_data_handle_t handle,
309 enum starpu_data_access_mode mode);
313 size_t _starpu_data_get_size(starpu_data_handle_t handle);
314 size_t _starpu_data_get_alloc_size(starpu_data_handle_t handle);
316 uint32_t _starpu_data_get_footprint(starpu_data_handle_t handle);
318 void __starpu_push_task_output(
struct _starpu_job *j);
322 void _starpu_release_nowhere_task_output(
struct _starpu_job *j);
325 STARPU_ATTRIBUTE_WARN_UNUSED_RESULT
326 int _starpu_fetch_task_input(
struct starpu_task *task,
struct _starpu_job *j,
int async);
328 void _starpu_fetch_nowhere_task_input(
struct _starpu_job *j);
331 int _starpu_determine_request_path(starpu_data_handle_t handle,
332 int src_node,
int dst_node,
333 enum starpu_data_access_mode mode,
int max_len,
334 unsigned *src_nodes,
unsigned *dst_nodes,
335 unsigned *handling_nodes,
unsigned write_invalidation);
343 enum starpu_data_access_mode mode,
unsigned is_prefetch,
345 void (*callback_func)(
void *),
void *callback_arg,
int prio,
const char *origin);
347 void _starpu_redux_init_data_replicate(starpu_data_handle_t handle,
struct _starpu_data_replicate *replicate,
int workerid);
348 void _starpu_data_start_reduction_mode(starpu_data_handle_t handle);
349 void _starpu_data_end_reduction_mode(starpu_data_handle_t handle);
350 void _starpu_data_end_reduction_mode_terminate(starpu_data_handle_t handle);
352 void _starpu_data_set_unregister_hook(starpu_data_handle_t handle, _starpu_data_handle_unregister_hook func);
353 struct _starpu_data_replicate *get_replicate(starpu_data_handle_t handle,
enum starpu_data_access_mode mode,
int workerid,
unsigned node);
355 #endif // __COHERENCY__H__
unsigned sequential_consistency
Definition: coherency.h:199
Definition: coherency.h:98
unsigned busy_waiting
Definition: coherency.h:140
unsigned readonly
Definition: coherency.h:173
struct _starpu_data_request * write_invalidation_req
Definition: coherency.h:255
unsigned relaxed_coherency
Definition: coherency.h:61
unsigned last_submitted_ghost_sync_id_is_valid
Definition: coherency.h:223
Definition: coherency.h:117
enum starpu_data_access_mode last_submitted_mode
Definition: coherency.h:213
struct starpu_codelet * redux_cl
Definition: coherency.h:239
unsigned switch_cl_nparts
Definition: coherency.h:164
int home_node
Definition: coherency.h:189
void * user_data
Definition: coherency.h:291
enum _starpu_cache_state state
Definition: coherency.h:57
starpu_data_handle_t * siblings
Definition: coherency.h:152
unsigned initialized
Definition: coherency.h:64
unsigned active
Definition: coherency.h:176
struct _starpu_data_state * root_handle
Definition: coherency.h:145
void * data_interface
Definition: coherency.h:49
void _starpu_release_data_on_node(struct _starpu_data_state *state, uint32_t default_wt_mask, struct _starpu_data_replicate *replicate)
struct _starpu_task_wrapper_list * post_sync_tasks
Definition: coherency.h:228
unsigned automatically_allocated
Definition: coherency.h:73
unsigned dimensions
Definition: coherency.h:286
struct _starpu_data_state * father_handle
Definition: coherency.h:146
Definition: coherency.h:105
unsigned reduction_refcnt
Definition: coherency.h:245
uint32_t wt_mask
Definition: coherency.h:192
unsigned nsiblings
Definition: coherency.h:151
unsigned busy_count
Definition: coherency.h:138
struct _starpu_data_replicate per_node[STARPU_MAXNODES]
Definition: coherency.h:180
Definition: coherency.h:44
unsigned initialized
Definition: coherency.h:201
int refcnt
Definition: coherency.h:52
Definition: starpu_spinlock.h:81
unsigned is_not_important
Definition: coherency.h:196
enum starpu_data_access_mode current_mode
Definition: coherency.h:130
starpu_data_handle_t ** active_readonly_children
Definition: coherency.h:148
Definition: coherency.h:91
struct _starpu_data_requester_prio_list reduction_req_list
Definition: coherency.h:250
unsigned allocated
Definition: coherency.h:67
unsigned refcnt
Definition: coherency.h:124
struct _starpu_data_requester_prio_list arbitered_req_list
Definition: coherency.h:275
unsigned nplans
Definition: coherency.h:160
int last_locality
Definition: coherency.h:280
struct _starpu_spinlock header_lock
Definition: coherency.h:132
_starpu_data_handle_unregister_hook unregister_hook
Definition: coherency.h:271
unsigned partitioned
Definition: coherency.h:171
struct _starpu_mem_chunk * mc
Definition: coherency.h:86
starpu_data_handle_t * active_children
Definition: coherency.h:147
struct starpu_codelet * switch_cl
Definition: coherency.h:162
unsigned nactive_readonly_children
Definition: coherency.h:149
uint32_t requested
Definition: coherency.h:82
uint32_t footprint
Definition: coherency.h:186
starpu_pthread_mutex_t sequential_consistency_mutex
Definition: coherency.h:207
int _starpu_fetch_data_on_node(starpu_data_handle_t handle, int node, struct _starpu_data_replicate *replicate, enum starpu_data_access_mode mode, unsigned detached, unsigned is_prefetch, unsigned async, void(*callback_func)(void *), void *callback_arg, int prio, const char *origin)
void * mpi_data
Definition: coherency.h:264
unsigned unlocking_reqs
Definition: coherency.h:126
struct _starpu_data_request * _starpu_create_request_to_fetch_data(starpu_data_handle_t handle, struct _starpu_data_replicate *dst_replicate, enum starpu_data_access_mode mode, unsigned is_prefetch, unsigned async, void(*callback_func)(void *), void *callback_arg, int prio, const char *origin)
unsigned depth
Definition: coherency.h:154
unsigned ooc
Definition: coherency.h:203
void _starpu_push_task_output(struct _starpu_job *j)
starpu_data_handle_t children
Definition: coherency.h:157