SimGrid  3.18
Versatile Simulation of Distributed Systems
simgrid::smpi::Datatype Class Reference

#include <smpi_datatype.hpp>

Inheritance diagram for simgrid::smpi::Datatype:
simgrid::smpi::F2C simgrid::smpi::Keyval simgrid::smpi::Type_Contiguous simgrid::smpi::Type_Hindexed simgrid::smpi::Type_Hvector simgrid::smpi::Type_Struct simgrid::smpi::Type_Indexed simgrid::smpi::Type_Vector

Public Member Functions

 Datatype (int size, MPI_Aint lb, MPI_Aint ub, int flags)
 
 Datatype (char *name, int size, MPI_Aint lb, MPI_Aint ub, int flags)
 
 Datatype (Datatype *datatype, int *ret)
 
virtual ~Datatype ()
 
char * name ()
 
size_t size ()
 
MPI_Aint lb ()
 
MPI_Aint ub ()
 
int flags ()
 
int refcount ()
 
void ref ()
 
void commit ()
 
bool is_valid ()
 
bool is_basic ()
 
bool is_replayable ()
 
void addflag (int flag)
 
int extent (MPI_Aint *lb, MPI_Aint *extent)
 
MPI_Aint get_extent ()
 
void get_name (char *name, int *length)
 
void set_name (char *name)
 
virtual void serialize (void *noncontiguous, void *contiguous, int count)
 
virtual void unserialize (void *contiguous, void *noncontiguous, int count, MPI_Op op)
 
int pack (void *inbuf, int incount, void *outbuf, int outcount, int *position, MPI_Comm comm)
 
int unpack (void *inbuf, int insize, int *position, void *outbuf, int outcount, MPI_Comm comm)
 
- Public Member Functions inherited from simgrid::smpi::F2C
virtual ~F2C ()=default
 
virtual int add_f ()
 
virtual int c2f ()
 
- Public Member Functions inherited from simgrid::smpi::Keyval
template<typename T >
int attr_delete (int keyval)
 
template<typename T >
int attr_get (int keyval, void *attr_value, int *flag)
 
template<typename T >
int attr_put (int keyval, void *attr_value)
 
template<typename T >
void cleanup_attr ()
 
template<>
int call_deleter (Comm *obj, smpi_key_elem elem, int keyval, void *value, int *flag)
 
template<>
int call_deleter (Win *obj, smpi_key_elem elem, int keyval, void *value, int *flag)
 
template<>
int call_deleter (Datatype *obj, smpi_key_elem elem, int keyval, void *value, int *flag)
 

Static Public Member Functions

static void unref (MPI_Datatype datatype)
 
static int copy (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype)
 
static int keyval_create (MPI_Type_copy_attr_function *copy_fn, MPI_Type_delete_attr_function *delete_fn, int *keyval, void *extra_state)
 
static int keyval_free (int *keyval)
 
static int create_contiguous (int count, MPI_Datatype old_type, MPI_Aint lb, MPI_Datatype *new_type)
 
static int create_vector (int count, int blocklen, int stride, MPI_Datatype old_type, MPI_Datatype *new_type)
 
static int create_hvector (int count, int blocklen, MPI_Aint stride, MPI_Datatype old_type, MPI_Datatype *new_type)
 
static int create_indexed (int count, int *blocklens, int *indices, MPI_Datatype old_type, MPI_Datatype *new_type)
 
static int create_hindexed (int count, int *blocklens, MPI_Aint *indices, MPI_Datatype old_type, MPI_Datatype *new_type)
 
static int create_struct (int count, int *blocklens, MPI_Aint *indices, MPI_Datatype *old_types, MPI_Datatype *new_type)
 
static Datatypef2c (int id)
 
- Static Public Member Functions inherited from simgrid::smpi::F2C
static char * get_key (char *key, int id)
 
static char * get_key_id (char *key, int id)
 
static void delete_lookup ()
 
static std::unordered_map< std::string, F2C * > * lookup ()
 
static void free_f (int id)
 
static F2Cf2c (int id)
 
- Static Public Member Functions inherited from simgrid::smpi::Keyval
template<typename T >
static int keyval_create (smpi_copy_fn copy_fn, smpi_delete_fn delete_fn, int *keyval, void *extra_statee)
 
template<typename T >
static int keyval_free (int *keyval)
 
template<typename T >
static int call_deleter (T *obj, smpi_key_elem elem, int keyval, void *value, int *flag)
 

Static Public Attributes

static std::unordered_map< int, smpi_key_elemkeyvals_
 
static int keyval_id_ =0
 

Additional Inherited Members

- Protected Member Functions inherited from simgrid::smpi::Keyval
std::unordered_map< int, void * > * attributes ()
 
- Static Protected Member Functions inherited from simgrid::smpi::F2C
static std::unordered_map< std::string, F2C * > * f2c_lookup ()
 
static void set_f2c_lookup (std::unordered_map< std::string, F2C *> *map)
 
static int f2c_id ()
 
static void f2c_id_increment ()
 

Constructor & Destructor Documentation

◆ Datatype() [1/3]

simgrid::smpi::Datatype::Datatype ( int  size,
MPI_Aint  lb,
MPI_Aint  ub,
int  flags 
)

◆ Datatype() [2/3]

simgrid::smpi::Datatype::Datatype ( char *  name,
int  size,
MPI_Aint  lb,
MPI_Aint  ub,
int  flags 
)

◆ Datatype() [3/3]

simgrid::smpi::Datatype::Datatype ( Datatype datatype,
int *  ret 
)

◆ ~Datatype()

simgrid::smpi::Datatype::~Datatype ( )
virtual

Member Function Documentation

◆ name()

char * simgrid::smpi::Datatype::name ( )

◆ size()

size_t simgrid::smpi::Datatype::size ( )

◆ lb()

MPI_Aint simgrid::smpi::Datatype::lb ( )

◆ ub()

MPI_Aint simgrid::smpi::Datatype::ub ( )

◆ flags()

int simgrid::smpi::Datatype::flags ( )

◆ refcount()

int simgrid::smpi::Datatype::refcount ( )

◆ ref()

void simgrid::smpi::Datatype::ref ( )

◆ unref()

void simgrid::smpi::Datatype::unref ( MPI_Datatype  datatype)
static

◆ commit()

void simgrid::smpi::Datatype::commit ( )

◆ is_valid()

bool simgrid::smpi::Datatype::is_valid ( )

◆ is_basic()

bool simgrid::smpi::Datatype::is_basic ( )

◆ is_replayable()

bool simgrid::smpi::Datatype::is_replayable ( )

◆ addflag()

void simgrid::smpi::Datatype::addflag ( int  flag)

◆ extent()

int simgrid::smpi::Datatype::extent ( MPI_Aint lb,
MPI_Aint extent 
)

◆ get_extent()

MPI_Aint simgrid::smpi::Datatype::get_extent ( )

◆ get_name()

void simgrid::smpi::Datatype::get_name ( char *  name,
int *  length 
)

◆ set_name()

void simgrid::smpi::Datatype::set_name ( char *  name)

◆ copy()

int simgrid::smpi::Datatype::copy ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype 
)
static

◆ serialize()

void simgrid::smpi::Datatype::serialize ( void noncontiguous,
void contiguous,
int  count 
)
virtual

◆ unserialize()

void simgrid::smpi::Datatype::unserialize ( void contiguous,
void noncontiguous,
int  count,
MPI_Op  op 
)
virtual

◆ keyval_create()

static int simgrid::smpi::Datatype::keyval_create ( MPI_Type_copy_attr_function copy_fn,
MPI_Type_delete_attr_function delete_fn,
int *  keyval,
void extra_state 
)
static

◆ keyval_free()

static int simgrid::smpi::Datatype::keyval_free ( int *  keyval)
static

◆ pack()

int simgrid::smpi::Datatype::pack ( void inbuf,
int  incount,
void outbuf,
int  outcount,
int *  position,
MPI_Comm  comm 
)

◆ unpack()

int simgrid::smpi::Datatype::unpack ( void inbuf,
int  insize,
int *  position,
void outbuf,
int  outcount,
MPI_Comm  comm 
)

◆ create_contiguous()

int simgrid::smpi::Datatype::create_contiguous ( int  count,
MPI_Datatype  old_type,
MPI_Aint  lb,
MPI_Datatype new_type 
)
static

◆ create_vector()

int simgrid::smpi::Datatype::create_vector ( int  count,
int  blocklen,
int  stride,
MPI_Datatype  old_type,
MPI_Datatype new_type 
)
static

◆ create_hvector()

int simgrid::smpi::Datatype::create_hvector ( int  count,
int  blocklen,
MPI_Aint  stride,
MPI_Datatype  old_type,
MPI_Datatype new_type 
)
static

◆ create_indexed()

int simgrid::smpi::Datatype::create_indexed ( int  count,
int *  blocklens,
int *  indices,
MPI_Datatype  old_type,
MPI_Datatype new_type 
)
static

◆ create_hindexed()

int simgrid::smpi::Datatype::create_hindexed ( int  count,
int *  blocklens,
MPI_Aint indices,
MPI_Datatype  old_type,
MPI_Datatype new_type 
)
static

◆ create_struct()

int simgrid::smpi::Datatype::create_struct ( int  count,
int *  blocklens,
MPI_Aint indices,
MPI_Datatype old_types,
MPI_Datatype new_type 
)
static

◆ f2c()

Datatype * simgrid::smpi::Datatype::f2c ( int  id)
static

Member Data Documentation

◆ keyvals_

std::unordered_map< int, smpi_key_elem > simgrid::smpi::Datatype::keyvals_
static

◆ keyval_id_

int simgrid::smpi::Datatype::keyval_id_ =0
static

The documentation for this class was generated from the following files: