StarPU Handbook - StarPU Extensions
Loading...
Searching...
No Matches
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_MPI_REDUX , STARPU_NOPLAN , STARPU_UNMAP ,
  STARPU_NOFOOTPRINT , STARPU_ACCESS_MODE_MAX
}
 
enum  starpu_is_prefetch {
  STARPU_FETCH , STARPU_TASK_PREFETCH , STARPU_PREFETCH , STARPU_IDLEFETCH ,
  STARPU_NFETCH
}
 

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)
 
int starpu_data_evict_from_node (starpu_data_handle_t handle, unsigned node)
 
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_status2 (starpu_data_handle_t handle, int memory_node, int *is_allocated, int *is_valid, int *is_loading, int *is_requested)
 
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)
 
void starpu_data_set_reduction_methods_with_args (starpu_data_handle_t handle, struct starpu_codelet *redux_cl, void *redux_cl_arg, struct starpu_codelet *init_cl, void *init_cl_arg)
 
struct starpu_data_interface_opsstarpu_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)
 
unsigned starpu_data_test_if_mapped_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)
 
void starpu_data_set_sched_data (starpu_data_handle_t handle, void *sched_data)
 
void * starpu_data_get_sched_data (starpu_data_handle_t handle)
 
int starpu_data_can_evict (starpu_data_handle_t handle, unsigned node, enum starpu_is_prefetch is_prefetch)
 
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_sync_jobids (starpu_data_handle_t handle, int node, enum starpu_data_access_mode mode, void(*callback_acquired)(void *arg, int *node, enum starpu_data_access_mode mode), void(*callback)(void *arg), void *arg, int sequential_consistency, int quick, long *pre_sync_jobid, long *post_sync_jobid, int prio)
 
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)
 
void starpu_data_release_to (starpu_data_handle_t handle, enum starpu_data_access_mode down_to_mode)
 
void starpu_data_release_to_on_node (starpu_data_handle_t handle, enum starpu_data_access_mode down_to_mode, int node)