starpu_mpi_private.h File Reference
`#include <starpu.h>`
`#include <common/config.h>`
`#include <common/uthash.h>`
`#include <starpu_mpi.h>`
`#include <starpu_mpi_fxt.h>`
`#include <common/list.h>`
`#include <common/prio_list.h>`
`#include <common/starpu_spinlock.h>`
`#include <core/simgrid.h>`

Go to the source code of this file.

## Data Structures

struct | _starpu_simgrid_mpi_req
struct | _starpu_mpi_node
struct | _starpu_mpi_node_tag
struct | _starpu_mpi_coop_sends
struct | _starpu_mpi_data
struct | _starpu_mpi_req
struct | _starpu_mpi_argc_argv
struct | _starpu_mpi_backend

## Macros

#define | STARPU_MPI_ASSERT_MSG(x, msg, ...)
#define | _STARPU_MPI_MALLOC(ptr, size)
#define | _STARPU_MPI_CALLOC(ptr, nmemb, size)
#define | _STARPU_MPI_REALLOC(ptr, size)
#define | _STARPU_MPI_COMM_DEBUG(ptr, count, datatype, node, tag, utag, comm, way)
#define | _STARPU_MPI_COMM_TO_DEBUG(ptr, count, datatype, dest, tag, utag, comm)
#define | _STARPU_MPI_COMM_FROM_DEBUG(ptr, count, datatype, source, tag, utag, comm)
#define | _STARPU_MPI_DEBUG(level, fmt, ...)
#define | _STARPU_MPI_DISP(fmt, ...)
#define | _STARPU_MPI_MSG(fmt, ...)
#define | _STARPU_MPI_LOG_IN()
#define | _STARPU_MPI_LOG_OUT()

## Enumerations

enum | _starpu_mpi_request_type { SEND_REQ , RECV_REQ , WAIT_REQ , TEST_REQ , BARRIER_REQ , PROBE_REQ , UNKNOWN_REQ }

## Functions

int | _starpu_mpi_simgrid_mpi_test (unsigned *done, int *flag)
void | _starpu_mpi_simgrid_wait_req (MPI_Request *request, MPI_Status *status, starpu_pthread_queue_t *queue, unsigned *done)
char * | _starpu_mpi_get_mpi_error_code (int code)
void | _starpu_mpi_env_init (void)
struct _starpu_mpi_data * | _starpu_mpi_data_get (starpu_data_handle_t data_handle)
void | _starpu_mpi_submit_ready_request (void *arg)
void | _starpu_mpi_release_req_data (struct _starpu_mpi_req *req)
void | _starpu_mpi_coop_sends_build_tree (struct _starpu_mpi_coop_sends *coop_sends)
void | _starpu_mpi_coop_send (starpu_data_handle_t data_handle, struct _starpu_mpi_req *req, enum starpu_data_access_mode mode, int sequential_consistency)
void | _starpu_mpi_submit_coop_sends (struct _starpu_mpi_coop_sends *coop_sends, int submit_control, int submit_data)
void | _starpu_mpi_submit_ready_request_inc (struct _starpu_mpi_req *req)
void | _starpu_mpi_request_init (struct _starpu_mpi_req **req)
struct _starpu_mpi_req * | _starpu_mpi_request_fill (starpu_data_handle_t data_handle, int srcdst, starpu_mpi_tag_t data_tag, MPI_Comm comm, unsigned detached, unsigned sync, int prio, void(*callback)(void *), void *arg, enum _starpu_mpi_request_type request_type, void(*func)(struct _starpu_mpi_req *), int sequential_consistency, int is_internal_req, starpu_ssize_t count)
void | _starpu_mpi_request_destroy (struct _starpu_mpi_req *req)
void | _starpu_mpi_isend_size_func (struct _starpu_mpi_req *req)
void | _starpu_mpi_irecv_size_func (struct _starpu_mpi_req *req)
int | _starpu_mpi_wait (starpu_mpi_req *public_req, MPI_Status *status)
int | _starpu_mpi_test (starpu_mpi_req *public_req, int *flag, MPI_Status *status)
int | _starpu_mpi_barrier (MPI_Comm comm)
void | _starpu_mpi_progress_shutdown (void **value)
int | _starpu_mpi_progress_init (struct _starpu_mpi_argc_argv *argc_argv)
void | _starpu_mpi_wait_for_initialization ()
void | _starpu_mpi_data_flush (starpu_data_handle_t data_handle)

## Variables

starpu_pthread_wait_t | _starpu_mpi_thread_wait
starpu_pthread_queue_t | _starpu_mpi_thread_dontsleep
int | _starpu_debug_rank
int | _starpu_mpi_comm_debug
int | _starpu_mpi_fake_world_size
int | _starpu_mpi_fake_world_rank
int | _starpu_mpi_use_prio
int | _starpu_mpi_nobind
int | _starpu_mpi_thread_cpuid
int | _starpu_mpi_use_coop_sends
PRIO_struct | _starpu_mpi_req
struct _starpu_mpi_backend | _mpi_backend

## Data Structure Documentation

## _starpu_simgrid_mpi_req

struct _starpu_simgrid_mpi_req

Data Fields
MPI_Request * | request |
MPI_Status * | status |
starpu_pthread_queue_t * | queue |
unsigned * | done |

## _starpu_mpi_node

struct _starpu_mpi_node

Data Fields
MPI_Comm | comm |
int | rank |

## _starpu_mpi_node_tag

struct _starpu_mpi_node_tag

Data Fields
struct _starpu_mpi_node | node |
starpu_mpi_tag_t | data_tag |

## _starpu_mpi_coop_sends

struct _starpu_mpi_coop_sends

Data Fields
struct _starpu_mpi_req_multilist_coop_sends | reqs |
struct _starpu_mpi_data * | mpi_data |
struct _starpu_spinlock | lock |
struct _starpu_mpi_req ** | reqs_array |
unsigned | n |
unsigned | redirects_sent |

## _starpu_mpi_data

struct _starpu_mpi_data

Data Fields
int | magic |
struct _starpu_mpi_node_tag | node_tag |
char * | cache_sent |
int | cache_received |
struct _starpu_spinlock | coop_lock |
struct _starpu_mpi_coop_sends * | coop_sends |

## _starpu_mpi_argc_argv

struct _starpu_mpi_argc_argv

Data Fields
int | initialize_mpi |
int * | argc |
char *** | argv |
MPI_Comm | comm |
int | fargc | Fortran argc
char ** | fargv | Fortran argv
int | rank |
int | world_size |