StarPU Handbook

Typedefs | Enumerations | Functions
starpu_data.h File Reference
`#include <starpu.h>`

Go to the source code of this file.

## Typedefs
typedef struct _starpu_data_state * | starpu_data_handle_t
typedef struct starpu_arbiter * | starpu_arbiter_t

## Enumerations
enum | starpu_data_access_mode { STARPU_NONE , STARPU_R , STARPU_W , STARPU_RW , STARPU_SCRATCH , STARPU_REDUX , STARPU_COMMUTE , STARPU_SSEND , STARPU_LOCALITY , STARPU_NOPLAN , STARPU_ACCESS_MODE_MAX }

## Functions
void | starpu_data_set_name (starpu_data_handle_t handle, const char *name)
void | starpu_data_set_coordinates_array (starpu_data_handle_t handle, unsigned dimensions, int dims[])
void | starpu_data_set_coordinates (starpu_data_handle_t handle, unsigned dimensions,...)
unsigned | starpu_data_get_coordinates_array (starpu_data_handle_t handle, unsigned dimensions, int dims[])
void | starpu_data_unregister (starpu_data_handle_t handle)
void | starpu_data_unregister_no_coherency (starpu_data_handle_t handle)
void | starpu_data_unregister_submit (starpu_data_handle_t handle)
void | starpu_data_invalidate (starpu_data_handle_t handle)
void | starpu_data_invalidate_submit (starpu_data_handle_t handle)
void | starpu_data_advise_as_important (starpu_data_handle_t handle, unsigned is_important)
starpu_arbiter_t | starpu_arbiter_create (void) STARPU_ATTRIBUTE_MALLOC
void | starpu_data_assign_arbiter (starpu_data_handle_t handle, starpu_arbiter_t arbiter)
void | starpu_arbiter_destroy (starpu_arbiter_t arbiter)
int | starpu_data_request_allocation (starpu_data_handle_t handle, unsigned node)
int | starpu_data_fetch_on_node (starpu_data_handle_t handle, unsigned node, unsigned async)
int | starpu_data_prefetch_on_node (starpu_data_handle_t handle, unsigned node, unsigned async)
int | starpu_data_prefetch_on_node_prio (starpu_data_handle_t handle, unsigned node, unsigned async, int prio)
int | starpu_data_idle_prefetch_on_node (starpu_data_handle_t handle, unsigned node, unsigned async)
int | starpu_data_idle_prefetch_on_node_prio (starpu_data_handle_t handle, unsigned node, unsigned async, int prio)
unsigned | starpu_data_is_on_node (starpu_data_handle_t handle, unsigned node)
void | starpu_data_wont_use (starpu_data_handle_t handle)
void | starpu_data_set_wt_mask (starpu_data_handle_t handle, uint32_t wt_mask)
void | starpu_data_set_ooc_flag (starpu_data_handle_t handle, unsigned flag)
unsigned | starpu_data_get_ooc_flag (starpu_data_handle_t handle)
void | starpu_data_query_status (starpu_data_handle_t handle, int memory_node, int *is_allocated, int *is_valid, int *is_requested)
void | starpu_data_set_reduction_methods (starpu_data_handle_t handle, struct starpu_codelet *redux_cl, struct starpu_codelet *init_cl)
struct starpu_data_interface_ops * | starpu_data_get_interface_ops (starpu_data_handle_t handle)
unsigned | starpu_data_test_if_allocated_on_node (starpu_data_handle_t handle, unsigned memory_node)
void | starpu_memchunk_tidy (unsigned memory_node)
void | starpu_data_set_user_data (starpu_data_handle_t handle, void *user_data)
void * | starpu_data_get_user_data (starpu_data_handle_t handle)
Implicit Data Dependencies
In this section, we describe how StarPU makes it possible to insert implicit task dependencies in order to enforce sequential data consistency. When this data consistency is enabled on a specific data handle, any data access will appear as sequentially consistent from the application. For instance, if the application submits two tasks that access the same piece of data in read-only mode, and then a third task that access it in write mode, dependencies will be added between the two first tasks and the third one. Implicit data dependencies are also inserted in the case of data accesses from the application.
void | starpu_data_set_sequential_consistency_flag (starpu_data_handle_t handle, unsigned flag)
unsigned | starpu_data_get_sequential_consistency_flag (starpu_data_handle_t handle)
unsigned | starpu_data_get_default_sequential_consistency_flag (void)
void | starpu_data_set_default_sequential_consistency_flag (unsigned flag)

## Access registered data from the application
#define | STARPU_ACQUIRE_NO_NODE
#define | STARPU_ACQUIRE_NO_NODE_LOCK_ALL
#define | STARPU_DATA_ACQUIRE_CB(handle, mode, code)
int | starpu_data_acquire (starpu_data_handle_t handle, enum starpu_data_access_mode mode)
int | starpu_data_acquire_on_node (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode)
int | starpu_data_acquire_cb (starpu_data_handle_t handle, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg)
int | starpu_data_acquire_on_node_cb (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg)
int | starpu_data_acquire_cb_sequential_consistency (starpu_data_handle_t handle, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg, int sequential_consistency)
int | starpu_data_acquire_on_node_cb_sequential_consistency (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg, int sequential_consistency)
int | starpu_data_acquire_on_node_cb_sequential_consistency_quick (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg, int sequential_consistency, int quick)
int | starpu_data_acquire_on_node_cb_sequential_consistency_sync_jobids (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode, void(*callback)(void *), void *arg, int sequential_consistency, int quick, long *pre_sync_jobid, long *post_sync_jobid)
int | starpu_data_acquire_try (starpu_data_handle_t handle, enum starpu_data_access_mode mode)
int | starpu_data_acquire_on_node_try (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode)
void | starpu_data_release (starpu_data_handle_t handle)
void | starpu_data_release_on_node (starpu_data_handle_t handle, int node)