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

Go to the source code of this file.

Data Structures

struct  starpu_mpi_task_exchange_params
 

Functions

Communication Cache
int starpu_mpi_cache_is_enabled (void)
 
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)
 
int starpu_mpi_cached_cp_receive_set (starpu_data_handle_t data_handle)
 
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

int starpu_mpi_redux_data (MPI_Comm comm, starpu_data_handle_t data_handle)
 
int starpu_mpi_redux_data_prio (MPI_Comm comm, starpu_data_handle_t data_handle, int prio)
 
int starpu_mpi_redux_data_tree (MPI_Comm comm, starpu_data_handle_t data_handle, int arity)
 
int starpu_mpi_redux_data_prio_tree (MPI_Comm comm, starpu_data_handle_t data_handle, int prio, int arity)
 
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)
 
Dynamic Broadcasts

void starpu_mpi_coop_sends_set_use (int use_coop_sends)
 
int starpu_mpi_coop_sends_get_use (void)
 
void starpu_mpi_coop_sends_data_handle_nb_sends (starpu_data_handle_t data_handle, int nb_sends)
 
Statistics

void starpu_mpi_comm_stats_disable (void)
 
void starpu_mpi_comm_stats_enable (void)
 
void starpu_mpi_comm_stats_retrieve (size_t *comm_stats)
 
Miscellaneous

int starpu_mpi_pre_submit_hook_register (void(*f)(struct starpu_task *))
 
int starpu_mpi_pre_submit_hook_unregister (void)
 
Data Tags Management

int64_t starpu_mpi_tags_allocate (int64_t nbtags)
 
void starpu_mpi_tags_free (int64_t mintag)
 

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)
 
int starpu_mpi_shutdown_comm (MPI_Comm comm)
 
int starpu_mpi_comm_register (MPI_Comm comm)
 
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_thread_cpuid (void)
 
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)
 
char * starpu_mpi_data_get_redux_map (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,...)
 
struct starpu_taskstarpu_mpi_task_build_v (MPI_Comm comm, struct starpu_codelet *codelet, va_list varg_list)
 
int starpu_mpi_task_post_build (MPI_Comm comm, struct starpu_codelet *codelet,...)
 
int starpu_mpi_task_post_build_v (MPI_Comm comm, struct starpu_codelet *codelet, va_list varg_list)
 
int starpu_mpi_task_exchange_data_before_execution (MPI_Comm comm, struct starpu_task *task, struct starpu_data_descr *descrs, struct starpu_mpi_task_exchange_params *params)
 
int starpu_mpi_task_exchange_data_after_execution (MPI_Comm comm, struct starpu_data_descr *descrs, unsigned nb_data, struct starpu_mpi_task_exchange_params params)
 
int starpu_mpi_get_data_on_node (MPI_Comm comm, starpu_data_handle_t data_handle, int node)
 
int 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 (void)
 
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 int(* starpu_mpi_datatype_node_allocate_func_t) (starpu_data_handle_t, unsigned node, 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_prio (starpu_data_handle_t data_handle, int source, starpu_mpi_tag_t data_tag, int prio, 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_node_register (starpu_data_handle_t handle, starpu_mpi_datatype_node_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func)
 
int starpu_mpi_interface_datatype_node_register (enum starpu_data_interface_id id, starpu_mpi_datatype_node_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)