SimGrid  3.13
Versatile Simulation of Distributed Systems
smpi_base.cpp File Reference
#include "private.h"
#include "xbt/virtu.h"
#include "mc/mc.h"
#include "src/mc/mc_replay.h"
#include "xbt/replay.h"
#include <errno.h>
#include "src/simix/smx_private.h"
#include "surf/surf.h"
#include "simgrid/sg_config.h"
#include "colls/colls.h"

Classes

struct  s_smpi_factor_multival
 

Typedefs

typedef struct s_smpi_factor_multivalsmpi_os_factor_multival_t
 
typedef struct s_smpi_factor_multival s_smpi_factor_multival_t
 

Functions

 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_base, smpi,"Logging specific to SMPI (base)")
 
static int match_recv (void *a, void *b, smx_synchro_t ignored)
 
static int match_send (void *a, void *b, smx_synchro_t ignored)
 
static int factor_cmp (const void *pa, const void *pb)
 
static xbt_dynar_t parse_factor (const char *smpi_coef_string)
 
static double smpi_os (double size)
 
static double smpi_ois (double size)
 
static double smpi_or (double size)
 
double smpi_mpi_wtime ()
 
static MPI_Request build_request (void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, unsigned flags)
 
void smpi_empty_status (MPI_Status *status)
 
static void smpi_mpi_request_free_voidp (void *request)
 
MPI_Request smpi_mpi_send_init (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
MPI_Request smpi_mpi_ssend_init (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
MPI_Request smpi_mpi_recv_init (void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm)
 
void smpi_mpi_start (MPI_Request request)
 
void smpi_mpi_startall (int count, MPI_Request *requests)
 
void smpi_mpi_request_free (MPI_Request *request)
 
MPI_Request smpi_rma_send_init (void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, MPI_Op op)
 
MPI_Request smpi_rma_recv_init (void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, MPI_Op op)
 
MPI_Request smpi_isend_init (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
MPI_Request smpi_mpi_isend (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
MPI_Request smpi_mpi_issend (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
MPI_Request smpi_irecv_init (void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm)
 
MPI_Request smpi_mpi_irecv (void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm)
 
void smpi_mpi_recv (void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Status *status)
 
void smpi_mpi_send (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
void smpi_mpi_ssend (void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm)
 
void smpi_mpi_sendrecv (void *sendbuf, int sendcount, MPI_Datatype sendtype, int dst, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int src, int recvtag, MPI_Comm comm, MPI_Status *status)
 
int smpi_mpi_get_count (MPI_Status *status, MPI_Datatype datatype)
 
static void finish_wait (MPI_Request *request, MPI_Status *status)
 
int smpi_mpi_test (MPI_Request *request, MPI_Status *status)
 
int smpi_mpi_testany (int count, MPI_Request requests[], int *index, MPI_Status *status)
 
int smpi_mpi_testall (int count, MPI_Request requests[], MPI_Status status[])
 
void smpi_mpi_probe (int source, int tag, MPI_Comm comm, MPI_Status *status)
 
void smpi_mpi_iprobe (int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status)
 
void smpi_mpi_wait (MPI_Request *request, MPI_Status *status)
 
int smpi_mpi_waitany (int count, MPI_Request requests[], MPI_Status *status)
 
int smpi_mpi_waitall (int count, MPI_Request requests[], MPI_Status status[])
 
int smpi_mpi_waitsome (int incount, MPI_Request requests[], int *indices, MPI_Status status[])
 
int smpi_mpi_testsome (int incount, MPI_Request requests[], int *indices, MPI_Status status[])
 
void smpi_mpi_bcast (void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
 
void smpi_mpi_barrier (MPI_Comm comm)
 
void smpi_mpi_gather (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
void smpi_mpi_reduce_scatter (void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
void smpi_mpi_gatherv (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
void smpi_mpi_allgather (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 
void smpi_mpi_allgatherv (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, MPI_Comm comm)
 
void smpi_mpi_scatter (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
void smpi_mpi_scatterv (void *sendbuf, int *sendcounts, int *displs, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
void smpi_mpi_reduce (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
 
void smpi_mpi_allreduce (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
void smpi_mpi_scan (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 
void smpi_mpi_exscan (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 

Variables

xbt_dynar_t smpi_os_values = NULL
 
xbt_dynar_t smpi_or_values = NULL
 
xbt_dynar_t smpi_ois_values = NULL
 
double smpi_wtime_sleep = 0.0
 
double smpi_iprobe_sleep = 1e-4
 
double smpi_test_sleep = 1e-4
 

Typedef Documentation

Function Documentation

XBT_LOG_NEW_DEFAULT_SUBCATEGORY ( smpi_base  ,
smpi  ,
"Logging specific to SMPI (base)"   
)
static int match_recv ( void a,
void b,
smx_synchro_t  ignored 
)
static
static int match_send ( void a,
void b,
smx_synchro_t  ignored 
)
static
static int factor_cmp ( const void pa,
const void pb 
)
static
static xbt_dynar_t parse_factor ( const char *  smpi_coef_string)
static
static double smpi_os ( double  size)
static
static double smpi_ois ( double  size)
static
static double smpi_or ( double  size)
static
double smpi_mpi_wtime ( void  )
static MPI_Request build_request ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  dst,
int  tag,
MPI_Comm  comm,
unsigned  flags 
)
static
void smpi_empty_status ( MPI_Status *  status)
static void smpi_mpi_request_free_voidp ( void request)
static
MPI_Request smpi_mpi_send_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_mpi_ssend_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_mpi_recv_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  tag,
MPI_Comm  comm 
)
void smpi_mpi_start ( MPI_Request  request)
void smpi_mpi_startall ( int  count,
MPI_Request *  requests 
)
void smpi_mpi_request_free ( MPI_Request *  request)
MPI_Request smpi_rma_send_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  dst,
int  tag,
MPI_Comm  comm,
MPI_Op  op 
)
MPI_Request smpi_rma_recv_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  dst,
int  tag,
MPI_Comm  comm,
MPI_Op  op 
)
MPI_Request smpi_isend_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_mpi_isend ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_mpi_issend ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_irecv_init ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  tag,
MPI_Comm  comm 
)
MPI_Request smpi_mpi_irecv ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  tag,
MPI_Comm  comm 
)
void smpi_mpi_recv ( void buf,
int  count,
MPI_Datatype  datatype,
int  src,
int  tag,
MPI_Comm  comm,
MPI_Status *  status 
)
void smpi_mpi_send ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
void smpi_mpi_ssend ( void buf,
int  count,
MPI_Datatype  datatype,
int  dst,
int  tag,
MPI_Comm  comm 
)
void smpi_mpi_sendrecv ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
int  dst,
int  sendtag,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  src,
int  recvtag,
MPI_Comm  comm,
MPI_Status *  status 
)
int smpi_mpi_get_count ( MPI_Status *  status,
MPI_Datatype  datatype 
)
static void finish_wait ( MPI_Request *  request,
MPI_Status *  status 
)
static
int smpi_mpi_test ( MPI_Request *  request,
MPI_Status *  status 
)
int smpi_mpi_testany ( int  count,
MPI_Request  requests[],
int *  index,
MPI_Status *  status 
)
int smpi_mpi_testall ( int  count,
MPI_Request  requests[],
MPI_Status  status[] 
)
void smpi_mpi_probe ( int  source,
int  tag,
MPI_Comm  comm,
MPI_Status *  status 
)
void smpi_mpi_iprobe ( int  source,
int  tag,
MPI_Comm  comm,
int *  flag,
MPI_Status *  status 
)
void smpi_mpi_wait ( MPI_Request *  request,
MPI_Status *  status 
)
int smpi_mpi_waitany ( int  count,
MPI_Request  requests[],
MPI_Status *  status 
)
int smpi_mpi_waitall ( int  count,
MPI_Request  requests[],
MPI_Status  status[] 
)
int smpi_mpi_waitsome ( int  incount,
MPI_Request  requests[],
int *  indices,
MPI_Status  status[] 
)
int smpi_mpi_testsome ( int  incount,
MPI_Request  requests[],
int *  indices,
MPI_Status  status[] 
)
void smpi_mpi_bcast ( void buf,
int  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_barrier ( MPI_Comm  comm)
void smpi_mpi_gather ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_reduce_scatter ( void sendbuf,
void recvbuf,
int *  recvcounts,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)
void smpi_mpi_gatherv ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int *  recvcounts,
int *  displs,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_allgather ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)
void smpi_mpi_allgatherv ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int *  recvcounts,
int *  displs,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)
void smpi_mpi_scatter ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_scatterv ( void sendbuf,
int *  sendcounts,
int *  displs,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_reduce ( void sendbuf,
void recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm 
)
void smpi_mpi_allreduce ( void sendbuf,
void recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)
void smpi_mpi_scan ( void sendbuf,
void recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)
void smpi_mpi_exscan ( void sendbuf,
void recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
MPI_Comm  comm 
)

Variable Documentation

xbt_dynar_t smpi_os_values = NULL
xbt_dynar_t smpi_or_values = NULL
xbt_dynar_t smpi_ois_values = NULL
double smpi_wtime_sleep = 0.0
double smpi_iprobe_sleep = 1e-4
double smpi_test_sleep = 1e-4