StarPU Internal Handbook
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