StarPU Handbook
starpu_mpi.h File Reference
#include <starpu.h>
#include <mpi.h>
#include <stdint.h>

Go to the source code of this file.

Functions

int starpu_mpi_pre_submit_hook_register (void(*f)(struct starpu_task *))
 
int starpu_mpi_pre_submit_hook_unregister ()
 
Communication Cache
int starpu_mpi_cache_is_enabled ()
 
int starpu_mpi_cache_set (int enabled)
 
void starpu_mpi_cache_flush (MPI_Comm comm, starpu_data_handle_t data_handle)
 
void starpu_mpi_cache_flush_all_data (MPI_Comm comm)
 
int starpu_mpi_cached_receive (starpu_data_handle_t data_handle)
 
int starpu_mpi_cached_receive_set (starpu_data_handle_t data)
 
void starpu_mpi_cached_receive_clear (starpu_data_handle_t data)
 
int starpu_mpi_cached_send (starpu_data_handle_t data_handle, int dest)
 
int starpu_mpi_cached_send_set (starpu_data_handle_t data, int dest)
 
void starpu_mpi_cached_send_clear (starpu_data_handle_t data)
 
Collective Operations

void starpu_mpi_redux_data (MPI_Comm comm, starpu_data_handle_t data_handle)
 
void starpu_mpi_redux_data_prio (MPI_Comm comm, starpu_data_handle_t data_handle, int prio)
 
int starpu_mpi_scatter_detached (starpu_data_handle_t *data_handles, int count, int root, MPI_Comm comm, void(*scallback)(void *), void *sarg, void(*rcallback)(void *), void *rarg)
 
int starpu_mpi_gather_detached (starpu_data_handle_t *data_handles, int count, int root, MPI_Comm comm, void(*scallback)(void *), void *sarg, void(*rcallback)(void *), void *rarg)
 

Initialisation

#define STARPU_MPI_TAG_UB
 
int starpu_mpi_init_conf (int *argc, char ***argv, int initialize_mpi, MPI_Comm comm, struct starpu_conf *conf)
 
int starpu_mpi_init_comm (int *argc, char ***argv, int initialize_mpi, MPI_Comm comm)
 
int starpu_mpi_init (int *argc, char ***argv, int initialize_mpi)
 
int starpu_mpi_initialize (void)
 
int starpu_mpi_initialize_extended (int *rank, int *world_size)
 
int starpu_mpi_shutdown (void)
 
void starpu_mpi_comm_amounts_retrieve (size_t *comm_amounts)
 
int starpu_mpi_comm_size (MPI_Comm comm, int *size)
 
int starpu_mpi_comm_rank (MPI_Comm comm, int *rank)
 
int starpu_mpi_world_rank (void)
 
int starpu_mpi_world_size (void)
 
int starpu_mpi_comm_get_attr (MPI_Comm comm, int keyval, void *attribute_val, int *flag)
 
int starpu_mpi_get_communication_tag (void)
 
void starpu_mpi_set_communication_tag (int tag)
 

MPI Insert Task

#define STARPU_MPI_PER_NODE
 
#define starpu_mpi_data_register(data_handle, data_tag, rank)
 
#define starpu_data_set_tag
 
#define starpu_mpi_data_set_rank(handle, rank)
 
#define starpu_data_set_rank
 
#define starpu_data_get_rank
 
#define starpu_data_get_tag
 
void starpu_mpi_data_register_comm (starpu_data_handle_t data_handle, starpu_mpi_tag_t data_tag, int rank, MPI_Comm comm)
 
void starpu_mpi_data_set_tag (starpu_data_handle_t handle, starpu_mpi_tag_t data_tag)
 
void starpu_mpi_data_set_rank_comm (starpu_data_handle_t handle, int rank, MPI_Comm comm)
 
int starpu_mpi_data_get_rank (starpu_data_handle_t handle)
 
starpu_mpi_tag_t starpu_mpi_data_get_tag (starpu_data_handle_t handle)
 
int starpu_mpi_task_insert (MPI_Comm comm, struct starpu_codelet *codelet,...)
 
int starpu_mpi_insert_task (MPI_Comm comm, struct starpu_codelet *codelet,...)
 
struct starpu_taskstarpu_mpi_task_build (MPI_Comm comm, struct starpu_codelet *codelet,...)
 
int starpu_mpi_task_post_build (MPI_Comm comm, struct starpu_codelet *codelet,...)
 
void starpu_mpi_get_data_on_node (MPI_Comm comm, starpu_data_handle_t data_handle, int node)
 
void starpu_mpi_get_data_on_node_detached (MPI_Comm comm, starpu_data_handle_t data_handle, int node, void(*callback)(void *), void *arg)
 
void starpu_mpi_get_data_on_all_nodes_detached (MPI_Comm comm, starpu_data_handle_t data_handle)
 
void starpu_mpi_data_migrate (MPI_Comm comm, starpu_data_handle_t handle, int new_rank)
 

Node Selection Policy

#define STARPU_MPI_NODE_SELECTION_CURRENT_POLICY
 
#define STARPU_MPI_NODE_SELECTION_MOST_R_DATA
 
typedef int(* starpu_mpi_select_node_policy_func_t) (int me, int nb_nodes, struct starpu_data_descr *descr, int nb_data)
 
int starpu_mpi_node_selection_register_policy (starpu_mpi_select_node_policy_func_t policy_func)
 
int starpu_mpi_node_selection_unregister_policy (int policy)
 
int starpu_mpi_node_selection_get_current_policy ()
 
int starpu_mpi_node_selection_set_current_policy (int policy)
 

Communication

typedef void * starpu_mpi_req
 
typedef int64_t starpu_mpi_tag_t
 
typedef int(* starpu_mpi_datatype_allocate_func_t) (starpu_data_handle_t, MPI_Datatype *)
 
typedef void(* starpu_mpi_datatype_free_func_t) (MPI_Datatype *)
 
int starpu_mpi_isend (starpu_data_handle_t data_handle, starpu_mpi_req *req, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm)
 
int starpu_mpi_isend_prio (starpu_data_handle_t data_handle, starpu_mpi_req *req, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm)
 
int starpu_mpi_irecv (starpu_data_handle_t data_handle, starpu_mpi_req *req, int source, starpu_mpi_tag_t data_tag, MPI_Comm comm)
 
int starpu_mpi_send (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm)
 
int starpu_mpi_send_prio (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm)
 
int starpu_mpi_recv (starpu_data_handle_t data_handle, int source, starpu_mpi_tag_t data_tag, MPI_Comm comm, MPI_Status *status)
 
int starpu_mpi_isend_detached (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm, void(*callback)(void *), void *arg)
 
int starpu_mpi_isend_detached_prio (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm, void(*callback)(void *), void *arg)
 
int starpu_mpi_irecv_detached (starpu_data_handle_t data_handle, int source, starpu_mpi_tag_t data_tag, MPI_Comm comm, void(*callback)(void *), void *arg)
 
int starpu_mpi_irecv_detached_sequential_consistency (starpu_data_handle_t data_handle, int source, starpu_mpi_tag_t data_tag, MPI_Comm comm, void(*callback)(void *), void *arg, int sequential_consistency)
 
int starpu_mpi_issend (starpu_data_handle_t data_handle, starpu_mpi_req *req, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm)
 
int starpu_mpi_issend_prio (starpu_data_handle_t data_handle, starpu_mpi_req *req, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm)
 
int starpu_mpi_issend_detached (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm, void(*callback)(void *), void *arg)
 
int starpu_mpi_issend_detached_prio (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm, void(*callback)(void *), void *arg)
 
int starpu_mpi_wait (starpu_mpi_req *req, MPI_Status *status)
 
int starpu_mpi_test (starpu_mpi_req *req, int *flag, MPI_Status *status)
 
int starpu_mpi_barrier (MPI_Comm comm)
 
int starpu_mpi_wait_for_all (MPI_Comm comm)
 
int starpu_mpi_isend_detached_unlock_tag (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, MPI_Comm comm, starpu_tag_t tag)
 
int starpu_mpi_isend_detached_unlock_tag_prio (starpu_data_handle_t data_handle, int dest, starpu_mpi_tag_t data_tag, int prio, MPI_Comm comm, starpu_tag_t tag)
 
int starpu_mpi_irecv_detached_unlock_tag (starpu_data_handle_t data_handle, int source, starpu_mpi_tag_t data_tag, MPI_Comm comm, starpu_tag_t tag)
 
int starpu_mpi_isend_array_detached_unlock_tag (unsigned array_size, starpu_data_handle_t *data_handle, int *dest, starpu_mpi_tag_t *data_tag, MPI_Comm *comm, starpu_tag_t tag)
 
int starpu_mpi_isend_array_detached_unlock_tag_prio (unsigned array_size, starpu_data_handle_t *data_handle, int *dest, starpu_mpi_tag_t *data_tag, int *prio, MPI_Comm *comm, starpu_tag_t tag)
 
int starpu_mpi_irecv_array_detached_unlock_tag (unsigned array_size, starpu_data_handle_t *data_handle, int *source, starpu_mpi_tag_t *data_tag, MPI_Comm *comm, starpu_tag_t tag)
 
int starpu_mpi_datatype_register (starpu_data_handle_t handle, starpu_mpi_datatype_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func)
 
int starpu_mpi_interface_datatype_register (enum starpu_data_interface_id id, starpu_mpi_datatype_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func)
 
int starpu_mpi_datatype_unregister (starpu_data_handle_t handle)
 
int starpu_mpi_interface_datatype_unregister (enum starpu_data_interface_id id)