SimGrid  3.18
Versatile Simulation of Distributed Systems
smpi_datatype.cpp File Reference
#include "simgrid/modelchecker.h"
#include "private.hpp"
#include "smpi_datatype_derived.hpp"
#include "smpi_op.hpp"
#include "smpi_process.hpp"

Namespaces

 simgrid
 Alltoall Bruck.
 
 simgrid::smpi
 

Macros

#define CREATE_MPI_DATATYPE(name, type)
 
#define CREATE_MPI_DATATYPE_NULL(name)
 

Functions

 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_datatype, smpi, "Logging specific to SMPI (datatype)")
 
 CREATE_MPI_DATATYPE (MPI_CHAR, char)
 
 CREATE_MPI_DATATYPE (MPI_SHORT, short)
 
 CREATE_MPI_DATATYPE (MPI_INT, int)
 
 CREATE_MPI_DATATYPE (MPI_LONG, long)
 
 CREATE_MPI_DATATYPE (MPI_LONG_LONG, long long)
 
 CREATE_MPI_DATATYPE (MPI_SIGNED_CHAR, signed char)
 
 CREATE_MPI_DATATYPE (MPI_UNSIGNED_CHAR, unsigned char)
 
 CREATE_MPI_DATATYPE (MPI_UNSIGNED_SHORT, unsigned short)
 
 CREATE_MPI_DATATYPE (MPI_UNSIGNED, unsigned int)
 
 CREATE_MPI_DATATYPE (MPI_UNSIGNED_LONG, unsigned long)
 
 CREATE_MPI_DATATYPE (MPI_UNSIGNED_LONG_LONG, unsigned long long)
 
 CREATE_MPI_DATATYPE (MPI_FLOAT, float)
 
 CREATE_MPI_DATATYPE (MPI_DOUBLE, double)
 
 CREATE_MPI_DATATYPE (MPI_LONG_DOUBLE, long double)
 
 CREATE_MPI_DATATYPE (MPI_WCHAR, wchar_t)
 
 CREATE_MPI_DATATYPE (MPI_C_BOOL, bool)
 
 CREATE_MPI_DATATYPE (MPI_BYTE, int8_t)
 
 CREATE_MPI_DATATYPE (MPI_INT8_T, int8_t)
 
 CREATE_MPI_DATATYPE (MPI_INT16_T, int16_t)
 
 CREATE_MPI_DATATYPE (MPI_INT32_T, int32_t)
 
 CREATE_MPI_DATATYPE (MPI_INT64_T, int64_t)
 
 CREATE_MPI_DATATYPE (MPI_UINT8_T, uint8_t)
 
 CREATE_MPI_DATATYPE (MPI_UINT16_T, uint16_t)
 
 CREATE_MPI_DATATYPE (MPI_UINT32_T, uint32_t)
 
 CREATE_MPI_DATATYPE (MPI_UINT64_T, uint64_t)
 
 CREATE_MPI_DATATYPE (MPI_C_FLOAT_COMPLEX, float _Complex)
 
 CREATE_MPI_DATATYPE (MPI_C_DOUBLE_COMPLEX, double _Complex)
 
 CREATE_MPI_DATATYPE (MPI_C_LONG_DOUBLE_COMPLEX, long double _Complex)
 
 CREATE_MPI_DATATYPE (MPI_AINT, MPI_Aint)
 
 CREATE_MPI_DATATYPE (MPI_OFFSET, MPI_Offset)
 
 CREATE_MPI_DATATYPE (MPI_FLOAT_INT, float_int)
 
 CREATE_MPI_DATATYPE (MPI_LONG_INT, long_int)
 
 CREATE_MPI_DATATYPE (MPI_DOUBLE_INT, double_int)
 
 CREATE_MPI_DATATYPE (MPI_SHORT_INT, short_int)
 
 CREATE_MPI_DATATYPE (MPI_2INT, int_int)
 
 CREATE_MPI_DATATYPE (MPI_2FLOAT, float_float)
 
 CREATE_MPI_DATATYPE (MPI_2DOUBLE, double_double)
 
 CREATE_MPI_DATATYPE (MPI_2LONG, long_long)
 
 CREATE_MPI_DATATYPE (MPI_REAL, float)
 
 CREATE_MPI_DATATYPE (MPI_REAL4, float)
 
 CREATE_MPI_DATATYPE (MPI_REAL8, float)
 
 CREATE_MPI_DATATYPE (MPI_REAL16, double)
 
 CREATE_MPI_DATATYPE_NULL (MPI_COMPLEX8)
 
 CREATE_MPI_DATATYPE_NULL (MPI_COMPLEX16)
 
 CREATE_MPI_DATATYPE_NULL (MPI_COMPLEX32)
 
 CREATE_MPI_DATATYPE (MPI_INTEGER1, int)
 
 CREATE_MPI_DATATYPE (MPI_INTEGER2, int16_t)
 
 CREATE_MPI_DATATYPE (MPI_INTEGER4, int32_t)
 
 CREATE_MPI_DATATYPE (MPI_INTEGER8, int64_t)
 
 CREATE_MPI_DATATYPE (MPI_INTEGER16, integer128_t)
 
 CREATE_MPI_DATATYPE (MPI_LONG_DOUBLE_INT, long_double_int)
 
 CREATE_MPI_DATATYPE_NULL (MPI_UB)
 
 CREATE_MPI_DATATYPE_NULL (MPI_LB)
 
 CREATE_MPI_DATATYPE (MPI_PACKED, char)
 
 CREATE_MPI_DATATYPE (MPI_PTR, void *)
 

Macro Definition Documentation

◆ CREATE_MPI_DATATYPE

#define CREATE_MPI_DATATYPE (   name,
  type 
)
Value:
static simgrid::smpi::Datatype mpi_##name ( \
(char*) # name, \
sizeof(type), /* size */ \
0, /* lb */ \
sizeof(type), /* ub = lb + size */ \
DT_FLAG_BASIC /* flags */ \
); \
const MPI_Datatype name = &mpi_##name;
#define DT_FLAG_BASIC
Definition: smpi_datatype.hpp:28
void int MPI_Datatype int MPI_Aint int MPI_Datatype MPI_Op MPI_Win win void int MPI_Datatype void int MPI_Datatype MPI_Comm comm MPI_Aint MPI_Info void baseptr void int MPI_Datatype void int MPI_Datatype MPI_Comm comm MPI_Comm int keyval MPI_Comm int void attr_value void int MPI_Datatype int MPI_Comm comm MPI_Comm int int int int MPI_Comm comm_cart MPI_Comm int int int int coords MPI_Comm int int int int dest MPI_Comm MPI_Comm int result MPI_Comm MPI_Group MPI_Comm newcomm MPI_Comm comm int keyval MPI_Comm int void int flag MPI_Comm MPI_Group group MPI_Comm int void attribute_val MPI_Comm int int MPI_Comm comm_out void void void MPI_Datatype int MPI_Aint MPI_Win win int int errorclass int flag void baseptr void int MPI_Datatype void int int MPI_Datatype int MPI_Comm comm MPI_Status MPI_Datatype int count char int resultlen void int MPI_Datatype int MPI_Aint int MPI_Datatype MPI_Win win void void MPI_Datatype int MPI_Aint MPI_Op MPI_Win win MPI_Group MPI_Group MPI_Group newgroup MPI_Group group MPI_Group MPI_Group MPI_Group newgroup MPI_Group int int MPI_Group newgroup MPI_Group int size MPI_Group MPI_Group MPI_Group newgroup MPI_Info char key MPI_Info info MPI_Info int nkeys MPI_Info char int int flag int flag int char int int provided void int MPI_Datatype int int MPI_Comm MPI_Request request void int MPI_Datatype int int MPI_Comm MPI_Request request MPI_Copy_function MPI_Delete_function int void extra_state MPI_User_function int MPI_Op op MPI_Op int commute void int MPI_Datatype type
Definition: smpi_mpi.cpp:127
SMPI_Datatype * MPI_Datatype
Definition: smpi.h:213
Definition: smpi_datatype.hpp:77
const char * name
Definition: msg.h:201

◆ CREATE_MPI_DATATYPE_NULL

#define CREATE_MPI_DATATYPE_NULL (   name)
Value:
static simgrid::smpi::Datatype mpi_##name ( \
(char*) # name, \
0, /* size */ \
0, /* lb */ \
0, /* ub = lb + size */ \
DT_FLAG_BASIC /* flags */ \
); \
const MPI_Datatype name = &mpi_##name;
#define DT_FLAG_BASIC
Definition: smpi_datatype.hpp:28
SMPI_Datatype * MPI_Datatype
Definition: smpi.h:213
Definition: smpi_datatype.hpp:77
const char * name
Definition: msg.h:201

Function Documentation

◆ XBT_LOG_NEW_DEFAULT_SUBCATEGORY()

XBT_LOG_NEW_DEFAULT_SUBCATEGORY ( smpi_datatype  ,
smpi  ,
"Logging specific to SMPI (datatype)"   
)

◆ CREATE_MPI_DATATYPE() [1/50]

CREATE_MPI_DATATYPE ( MPI_CHAR  ,
char   
)

◆ CREATE_MPI_DATATYPE() [2/50]

CREATE_MPI_DATATYPE ( MPI_SHORT  ,
short   
)

◆ CREATE_MPI_DATATYPE() [3/50]

CREATE_MPI_DATATYPE ( MPI_INT  ,
int   
)

◆ CREATE_MPI_DATATYPE() [4/50]

CREATE_MPI_DATATYPE ( MPI_LONG  ,
long   
)

◆ CREATE_MPI_DATATYPE() [5/50]

CREATE_MPI_DATATYPE ( MPI_LONG_LONG  ,
long  long 
)

◆ CREATE_MPI_DATATYPE() [6/50]

CREATE_MPI_DATATYPE ( MPI_SIGNED_CHAR  ,
signed  char 
)

◆ CREATE_MPI_DATATYPE() [7/50]

CREATE_MPI_DATATYPE ( MPI_UNSIGNED_CHAR  ,
unsigned  char 
)

◆ CREATE_MPI_DATATYPE() [8/50]

CREATE_MPI_DATATYPE ( MPI_UNSIGNED_SHORT  ,
unsigned  short 
)

◆ CREATE_MPI_DATATYPE() [9/50]

CREATE_MPI_DATATYPE ( MPI_UNSIGNED  ,
unsigned  int 
)

◆ CREATE_MPI_DATATYPE() [10/50]

CREATE_MPI_DATATYPE ( MPI_UNSIGNED_LONG  ,
unsigned  long 
)

◆ CREATE_MPI_DATATYPE() [11/50]

CREATE_MPI_DATATYPE ( MPI_UNSIGNED_LONG_LONG  ,
unsigned long  long 
)

◆ CREATE_MPI_DATATYPE() [12/50]

CREATE_MPI_DATATYPE ( MPI_FLOAT  ,
float   
)

◆ CREATE_MPI_DATATYPE() [13/50]

CREATE_MPI_DATATYPE ( MPI_DOUBLE  ,
double   
)

◆ CREATE_MPI_DATATYPE() [14/50]

CREATE_MPI_DATATYPE ( MPI_LONG_DOUBLE  ,
long  double 
)

◆ CREATE_MPI_DATATYPE() [15/50]

CREATE_MPI_DATATYPE ( MPI_WCHAR  ,
wchar_t   
)

◆ CREATE_MPI_DATATYPE() [16/50]

CREATE_MPI_DATATYPE ( MPI_C_BOOL  ,
bool   
)

◆ CREATE_MPI_DATATYPE() [17/50]

CREATE_MPI_DATATYPE ( MPI_BYTE  ,
int8_t   
)

◆ CREATE_MPI_DATATYPE() [18/50]

CREATE_MPI_DATATYPE ( MPI_INT8_T  ,
int8_t   
)

◆ CREATE_MPI_DATATYPE() [19/50]

CREATE_MPI_DATATYPE ( MPI_INT16_T  ,
int16_t   
)

◆ CREATE_MPI_DATATYPE() [20/50]

CREATE_MPI_DATATYPE ( MPI_INT32_T  ,
int32_t   
)

◆ CREATE_MPI_DATATYPE() [21/50]

CREATE_MPI_DATATYPE ( MPI_INT64_T  ,
int64_t   
)

◆ CREATE_MPI_DATATYPE() [22/50]

CREATE_MPI_DATATYPE ( MPI_UINT8_T  ,
uint8_t   
)

◆ CREATE_MPI_DATATYPE() [23/50]

CREATE_MPI_DATATYPE ( MPI_UINT16_T  ,
uint16_t   
)

◆ CREATE_MPI_DATATYPE() [24/50]

CREATE_MPI_DATATYPE ( MPI_UINT32_T  ,
uint32_t   
)

◆ CREATE_MPI_DATATYPE() [25/50]

CREATE_MPI_DATATYPE ( MPI_UINT64_T  ,
uint64_t   
)

◆ CREATE_MPI_DATATYPE() [26/50]

CREATE_MPI_DATATYPE ( MPI_C_FLOAT_COMPLEX  ,
float  _Complex 
)

◆ CREATE_MPI_DATATYPE() [27/50]

CREATE_MPI_DATATYPE ( MPI_C_DOUBLE_COMPLEX  ,
double  _Complex 
)

◆ CREATE_MPI_DATATYPE() [28/50]

CREATE_MPI_DATATYPE ( MPI_C_LONG_DOUBLE_COMPLEX  ,
long double  _Complex 
)

◆ CREATE_MPI_DATATYPE() [29/50]

CREATE_MPI_DATATYPE ( MPI_AINT  ,
MPI_Aint   
)

◆ CREATE_MPI_DATATYPE() [30/50]

CREATE_MPI_DATATYPE ( MPI_OFFSET  ,
MPI_Offset   
)

◆ CREATE_MPI_DATATYPE() [31/50]

CREATE_MPI_DATATYPE ( MPI_FLOAT_INT  ,
float_int   
)

◆ CREATE_MPI_DATATYPE() [32/50]

CREATE_MPI_DATATYPE ( MPI_LONG_INT  ,
long_int   
)

◆ CREATE_MPI_DATATYPE() [33/50]

CREATE_MPI_DATATYPE ( MPI_DOUBLE_INT  ,
double_int   
)

◆ CREATE_MPI_DATATYPE() [34/50]

CREATE_MPI_DATATYPE ( MPI_SHORT_INT  ,
short_int   
)

◆ CREATE_MPI_DATATYPE() [35/50]

CREATE_MPI_DATATYPE ( MPI_2INT  ,
int_int   
)

◆ CREATE_MPI_DATATYPE() [36/50]

CREATE_MPI_DATATYPE ( MPI_2FLOAT  ,
float_float   
)

◆ CREATE_MPI_DATATYPE() [37/50]

CREATE_MPI_DATATYPE ( MPI_2DOUBLE  ,
double_double   
)

◆ CREATE_MPI_DATATYPE() [38/50]

CREATE_MPI_DATATYPE ( MPI_2LONG  ,
long_long   
)

◆ CREATE_MPI_DATATYPE() [39/50]

CREATE_MPI_DATATYPE ( MPI_REAL  ,
float   
)

◆ CREATE_MPI_DATATYPE() [40/50]

CREATE_MPI_DATATYPE ( MPI_REAL4  ,
float   
)

◆ CREATE_MPI_DATATYPE() [41/50]

CREATE_MPI_DATATYPE ( MPI_REAL8  ,
float   
)

◆ CREATE_MPI_DATATYPE() [42/50]

CREATE_MPI_DATATYPE ( MPI_REAL16  ,
double   
)

◆ CREATE_MPI_DATATYPE_NULL() [1/5]

CREATE_MPI_DATATYPE_NULL ( MPI_COMPLEX8  )

◆ CREATE_MPI_DATATYPE_NULL() [2/5]

CREATE_MPI_DATATYPE_NULL ( MPI_COMPLEX16  )

◆ CREATE_MPI_DATATYPE_NULL() [3/5]

CREATE_MPI_DATATYPE_NULL ( MPI_COMPLEX32  )

◆ CREATE_MPI_DATATYPE() [43/50]

CREATE_MPI_DATATYPE ( MPI_INTEGER1  ,
int   
)

◆ CREATE_MPI_DATATYPE() [44/50]

CREATE_MPI_DATATYPE ( MPI_INTEGER2  ,
int16_t   
)

◆ CREATE_MPI_DATATYPE() [45/50]

CREATE_MPI_DATATYPE ( MPI_INTEGER4  ,
int32_t   
)

◆ CREATE_MPI_DATATYPE() [46/50]

CREATE_MPI_DATATYPE ( MPI_INTEGER8  ,
int64_t   
)

◆ CREATE_MPI_DATATYPE() [47/50]

CREATE_MPI_DATATYPE ( MPI_INTEGER16  ,
integer128_t   
)

◆ CREATE_MPI_DATATYPE() [48/50]

CREATE_MPI_DATATYPE ( MPI_LONG_DOUBLE_INT  ,
long_double_int   
)

◆ CREATE_MPI_DATATYPE_NULL() [4/5]

CREATE_MPI_DATATYPE_NULL ( MPI_UB  )

◆ CREATE_MPI_DATATYPE_NULL() [5/5]

CREATE_MPI_DATATYPE_NULL ( MPI_LB  )

◆ CREATE_MPI_DATATYPE() [49/50]

CREATE_MPI_DATATYPE ( MPI_PACKED  ,
char   
)

◆ CREATE_MPI_DATATYPE() [50/50]

CREATE_MPI_DATATYPE ( MPI_PTR  ,
void  
)