SimGrid  3.16
Versatile Simulation of Distributed Systems
smpi_replay.cpp File Reference
#include "src/smpi/private.h"
#include "src/smpi/smpi_coll.hpp"
#include "src/smpi/smpi_comm.hpp"
#include "src/smpi/smpi_datatype.hpp"
#include "src/smpi/smpi_group.hpp"
#include "src/smpi/smpi_process.hpp"
#include "src/smpi/smpi_request.hpp"
#include "xbt/replay.hpp"
#include <unordered_map>
#include <vector>

Namespaces

 simgrid
 Alltoall Bruck.
 
 simgrid::smpi
 

Macros

#define KEY_SIZE   (sizeof(int) * 2 + 1)
 
#define CHECK_ACTION_PARAMS(action, mandatory, optional)
 

Functions

 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_replay, smpi,"Trace Replay with SMPI")
 
static void log_timed_action (const char *const *action, double clock)
 
static std::vector< MPI_Request > * get_reqq_self ()
 
static void set_reqq_self (std::vector< MPI_Request > *mpi_request)
 
voidsmpi_get_tmp_sendbuffer (int size)
 
voidsmpi_get_tmp_recvbuffer (int size)
 
void smpi_free_tmp_buffer (void *buf)
 
static double parse_double (const char *string)
 
static MPI_Datatype decode_datatype (const char *const action)
 
const char * encode_datatype (MPI_Datatype datatype, int *known)
 
static void simgrid::smpi::action_init (const char *const *action)
 
static void simgrid::smpi::action_finalize (const char *const *action)
 
static void simgrid::smpi::action_comm_size (const char *const *action)
 
static void simgrid::smpi::action_comm_split (const char *const *action)
 
static void simgrid::smpi::action_comm_dup (const char *const *action)
 
static void simgrid::smpi::action_compute (const char *const *action)
 
static void simgrid::smpi::action_send (const char *const *action)
 
static void simgrid::smpi::action_Isend (const char *const *action)
 
static void simgrid::smpi::action_recv (const char *const *action)
 
static void simgrid::smpi::action_Irecv (const char *const *action)
 
static void simgrid::smpi::action_test (const char *const *action)
 
static void simgrid::smpi::action_wait (const char *const *action)
 
static void simgrid::smpi::action_waitall (const char *const *action)
 
static void simgrid::smpi::action_barrier (const char *const *action)
 
static void simgrid::smpi::action_bcast (const char *const *action)
 
static void simgrid::smpi::action_reduce (const char *const *action)
 
static void simgrid::smpi::action_allReduce (const char *const *action)
 
static void simgrid::smpi::action_allToAll (const char *const *action)
 
static void simgrid::smpi::action_gather (const char *const *action)
 
static void simgrid::smpi::action_gatherv (const char *const *action)
 
static void simgrid::smpi::action_reducescatter (const char *const *action)
 
static void simgrid::smpi::action_allgather (const char *const *action)
 
static void simgrid::smpi::action_allgatherv (const char *const *action)
 
static void simgrid::smpi::action_allToAllv (const char *const *action)
 
void smpi_replay_init (int *argc, char ***argv)
 Only initialize the replay, don't do it for real. More...
 
void smpi_replay_main (int *argc, char ***argv)
 actually run the replay after initialization More...
 
void smpi_replay_run (int *argc, char ***argv)
 chain a replay initialization and a replay start More...
 

Variables

int communicator_size = 0
 
static int active_processes = 0
 
std::unordered_map< int, std::vector< MPI_Request > * > reqq
 
MPI_Datatype MPI_DEFAULT_TYPE
 
MPI_Datatype MPI_CURRENT_TYPE
 
static int sendbuffer_size =0
 
char * sendbuffer =nullptr
 
static int recvbuffer_size =0
 
char * recvbuffer =nullptr
 

Macro Definition Documentation

◆ KEY_SIZE

#define KEY_SIZE   (sizeof(int) * 2 + 1)

◆ CHECK_ACTION_PARAMS

#define CHECK_ACTION_PARAMS (   action,
  mandatory,
  optional 
)
Value:
{\
int i=0;\
while(action[i]!=nullptr)\
i++;\
if(i<mandatory+2) \
THROWF(arg_error, 0, "%s replay failed.\n" \
"%d items were given on the line. First two should be process_id and action. " \
"This action needs after them %d mandatory arguments, and accepts %d optional ones. \n" \
"Please contact the Simgrid team if support is needed", __FUNCTION__, i, mandatory, optional);\
}
Invalid argument.
Definition: ex.h:94

Function Documentation

◆ XBT_LOG_NEW_DEFAULT_SUBCATEGORY()

XBT_LOG_NEW_DEFAULT_SUBCATEGORY ( smpi_replay  ,
smpi  ,
"Trace Replay with SMPI"   
)

◆ log_timed_action()

static void log_timed_action ( const char *const *  action,
double  clock 
)
static

◆ get_reqq_self()

static std::vector<MPI_Request>* get_reqq_self ( )
static

◆ set_reqq_self()

static void set_reqq_self ( std::vector< MPI_Request > *  mpi_request)
static

◆ smpi_get_tmp_sendbuffer()

void* smpi_get_tmp_sendbuffer ( int  size)

◆ smpi_get_tmp_recvbuffer()

void* smpi_get_tmp_recvbuffer ( int  size)

◆ smpi_free_tmp_buffer()

void smpi_free_tmp_buffer ( void buf)

◆ parse_double()

static double parse_double ( const char *  string)
static

◆ decode_datatype()

static MPI_Datatype decode_datatype ( const char *const  action)
static

◆ encode_datatype()

const char* encode_datatype ( MPI_Datatype  datatype,
int *  known 
)

◆ smpi_replay_init()

void smpi_replay_init ( int *  argc,
char ***  argv 
)

Only initialize the replay, don't do it for real.

◆ smpi_replay_main()

void smpi_replay_main ( int *  argc,
char ***  argv 
)

actually run the replay after initialization

◆ smpi_replay_run()

void smpi_replay_run ( int *  argc,
char ***  argv 
)

chain a replay initialization and a replay start

Variable Documentation

◆ communicator_size

int communicator_size = 0

◆ active_processes

int active_processes = 0
static

◆ reqq

std::unordered_map<int,std::vector<MPI_Request>*> reqq

◆ MPI_DEFAULT_TYPE

MPI_Datatype MPI_DEFAULT_TYPE

◆ MPI_CURRENT_TYPE

MPI_Datatype MPI_CURRENT_TYPE

◆ sendbuffer_size

int sendbuffer_size =0
static

◆ sendbuffer

char* sendbuffer =nullptr

◆ recvbuffer_size

int recvbuffer_size =0
static

◆ recvbuffer

char* recvbuffer =nullptr