SimGrid
3.13
Versatile Simulation of Distributed Systems
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include "private.h"
#include "smpi_mpi_dt_private.h"
#include "mc/mc.h"
#include "xbt/replay.h"
#include "simgrid/modelchecker.h"
Classes | |
struct | float_int |
struct | float_float |
struct | long_long |
struct | double_double |
struct | long_int |
struct | double_int |
struct | short_int |
struct | int_int |
struct | long_double_int |
struct | integer128_t |
struct | s_smpi_mpi_op |
Macros | |
#define | CREATE_MPI_DATATYPE(name, type) |
#define | CREATE_MPI_DATATYPE_NULL(name) |
#define | MAX_OP(a, b) (b) = (a) < (b) ? (b) : (a) |
#define | MIN_OP(a, b) (b) = (a) < (b) ? (a) : (b) |
#define | SUM_OP(a, b) (b) += (a) |
#define | PROD_OP(a, b) (b) *= (a) |
#define | LAND_OP(a, b) (b) = (a) && (b) |
#define | LOR_OP(a, b) (b) = (a) || (b) |
#define | LXOR_OP(a, b) (b) = (!(a) && (b)) || ((a) && !(b)) |
#define | BAND_OP(a, b) (b) &= (a) |
#define | BOR_OP(a, b) (b) |= (a) |
#define | BXOR_OP(a, b) (b) ^= (a) |
#define | MAXLOC_OP(a, b) (b) = (a.value) < (b.value) ? (b) : (a) |
#define | MINLOC_OP(a, b) (b) = (a.value) < (b.value) ? (a) : (b) |
#define | APPLY_FUNC(a, b, length, type, func) |
#define | CREATE_MPI_OP(name, func) |
Typedefs | |
typedef struct s_smpi_mpi_op | s_smpi_mpi_op_t |
Functions | |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_mpi_dt, 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 *) | |
int | is_datatype_valid (MPI_Datatype datatype) |
Check if the datatype is usable for communications. More... | |
size_t | smpi_datatype_size (MPI_Datatype datatype) |
MPI_Aint | smpi_datatype_lb (MPI_Datatype datatype) |
MPI_Aint | smpi_datatype_ub (MPI_Datatype datatype) |
int | smpi_datatype_dup (MPI_Datatype datatype, MPI_Datatype *new_t) |
int | smpi_datatype_extent (MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent) |
MPI_Aint | smpi_datatype_get_extent (MPI_Datatype datatype) |
void | smpi_datatype_get_name (MPI_Datatype datatype, char *name, int *length) |
void | smpi_datatype_set_name (MPI_Datatype datatype, char *name) |
int | smpi_datatype_copy (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype) |
void | serialize_vector (const void *noncontiguous_vector, void *contiguous_vector, int count, void *type) |
void | unserialize_vector (const void *contiguous_vector, void *noncontiguous_vector, int count, void *type, MPI_Op op) |
s_smpi_mpi_vector_t * | smpi_datatype_vector_create (int block_stride, int block_length, int block_count, MPI_Datatype old_type, int size_oldtype) |
void | smpi_datatype_create (MPI_Datatype *new_type, int size, int lb, int ub, int sizeof_substruct, void *struct_type, int flags) |
void | smpi_datatype_free (MPI_Datatype *type) |
void | smpi_datatype_use (MPI_Datatype type) |
void | smpi_datatype_unuse (MPI_Datatype type) |
void | serialize_contiguous (const void *noncontiguous_hvector, void *contiguous_hvector, int count, void *type) |
void | unserialize_contiguous (const void *contiguous_vector, void *noncontiguous_vector, int count, void *type, MPI_Op op) |
void | free_contiguous (MPI_Datatype *d) |
void | use_contiguous (MPI_Datatype *d) |
s_smpi_mpi_contiguous_t * | smpi_datatype_contiguous_create (MPI_Aint lb, int block_count, MPI_Datatype old_type, int size_oldtype) |
int | smpi_datatype_contiguous (int count, MPI_Datatype old_type, MPI_Datatype *new_type, MPI_Aint lb) |
int | smpi_datatype_vector (int count, int blocklen, int stride, MPI_Datatype old_type, MPI_Datatype *new_type) |
void | free_vector (MPI_Datatype *d) |
void | use_vector (MPI_Datatype *d) |
void | serialize_hvector (const void *noncontiguous_hvector, void *contiguous_hvector, int count, void *type) |
void | unserialize_hvector (const void *contiguous_vector, void *noncontiguous_vector, int count, void *type, MPI_Op op) |
s_smpi_mpi_hvector_t * | smpi_datatype_hvector_create (MPI_Aint block_stride, int block_length, int block_count, MPI_Datatype old_type, int size_oldtype) |
void | free_hvector (MPI_Datatype *d) |
void | use_hvector (MPI_Datatype *d) |
int | smpi_datatype_hvector (int count, int blocklen, MPI_Aint stride, MPI_Datatype old_type, MPI_Datatype *new_type) |
void | serialize_indexed (const void *noncontiguous_indexed, void *contiguous_indexed, int count, void *type) |
void | unserialize_indexed (const void *contiguous_indexed, void *noncontiguous_indexed, int count, void *type, MPI_Op op) |
void | free_indexed (MPI_Datatype *type) |
void | use_indexed (MPI_Datatype *type) |
s_smpi_mpi_indexed_t * | smpi_datatype_indexed_create (int *block_lengths, int *block_indices, int block_count, MPI_Datatype old_type, int size_oldtype) |
int | smpi_datatype_indexed (int count, int *blocklens, int *indices, MPI_Datatype old_type, MPI_Datatype *new_type) |
void | serialize_hindexed (const void *noncontiguous_hindexed, void *contiguous_hindexed, int count, void *type) |
void | unserialize_hindexed (const void *contiguous_hindexed, void *noncontiguous_hindexed, int count, void *type, MPI_Op op) |
void | free_hindexed (MPI_Datatype *type) |
void | use_hindexed (MPI_Datatype *type) |
s_smpi_mpi_hindexed_t * | smpi_datatype_hindexed_create (int *block_lengths, MPI_Aint *block_indices, int block_count, MPI_Datatype old_type, int size_oldtype) |
int | smpi_datatype_hindexed (int count, int *blocklens, MPI_Aint *indices, MPI_Datatype old_type, MPI_Datatype *new_type) |
void | serialize_struct (const void *noncontiguous_struct, void *contiguous_struct, int count, void *type) |
void | unserialize_struct (const void *contiguous_struct, void *noncontiguous_struct, int count, void *type, MPI_Op op) |
void | free_struct (MPI_Datatype *type) |
void | use_struct (MPI_Datatype *type) |
s_smpi_mpi_struct_t * | smpi_datatype_struct_create (int *block_lengths, MPI_Aint *block_indices, int block_count, MPI_Datatype *old_types) |
int | smpi_datatype_struct (int count, int *blocklens, MPI_Aint *indices, MPI_Datatype *old_types, MPI_Datatype *new_type) |
void | smpi_datatype_commit (MPI_Datatype *datatype) |
static void | max_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | min_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | sum_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | prod_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | land_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | lor_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | lxor_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | band_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | bor_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | bxor_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | minloc_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | maxloc_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
static void | replace_func (void *a, void *b, int *length, MPI_Datatype *datatype) |
CREATE_MPI_OP (MPI_MAX, max_func) | |
CREATE_MPI_OP (MPI_MIN, min_func) | |
CREATE_MPI_OP (MPI_SUM, sum_func) | |
CREATE_MPI_OP (MPI_PROD, prod_func) | |
CREATE_MPI_OP (MPI_LAND, land_func) | |
CREATE_MPI_OP (MPI_LOR, lor_func) | |
CREATE_MPI_OP (MPI_LXOR, lxor_func) | |
CREATE_MPI_OP (MPI_BAND, band_func) | |
CREATE_MPI_OP (MPI_BOR, bor_func) | |
CREATE_MPI_OP (MPI_BXOR, bxor_func) | |
CREATE_MPI_OP (MPI_MAXLOC, maxloc_func) | |
CREATE_MPI_OP (MPI_MINLOC, minloc_func) | |
CREATE_MPI_OP (MPI_REPLACE, replace_func) | |
MPI_Op | smpi_op_new (MPI_User_function *function, int commute) |
int | smpi_op_is_commute (MPI_Op op) |
void | smpi_op_destroy (MPI_Op op) |
void | smpi_op_apply (MPI_Op op, void *invec, void *inoutvec, int *len, MPI_Datatype *datatype) |
int | smpi_type_attr_delete (MPI_Datatype type, int keyval) |
int | smpi_type_attr_get (MPI_Datatype type, int keyval, void *attr_value, int *flag) |
int | smpi_type_attr_put (MPI_Datatype type, int keyval, void *attr_value) |
int | smpi_type_keyval_create (MPI_Type_copy_attr_function *copy_fn, MPI_Type_delete_attr_function *delete_fn, int *keyval, void *extra_state) |
int | smpi_type_keyval_free (int *keyval) |
int | smpi_mpi_pack (void *inbuf, int incount, MPI_Datatype type, void *outbuf, int outcount, int *position, MPI_Comm comm) |
int | smpi_mpi_unpack (void *inbuf, int insize, int *position, void *outbuf, int outcount, MPI_Datatype type, MPI_Comm comm) |
Variables | |
xbt_dict_t | smpi_type_keyvals = NULL |
int | type_keyval_id =0 |
#define CREATE_MPI_DATATYPE_NULL | ( | name | ) |
#define MAX_OP | ( | a, | |
b | |||
) | (b) = (a) < (b) ? (b) : (a) |
#define MIN_OP | ( | a, | |
b | |||
) | (b) = (a) < (b) ? (a) : (b) |
#define SUM_OP | ( | a, | |
b | |||
) | (b) += (a) |
#define PROD_OP | ( | a, | |
b | |||
) | (b) *= (a) |
#define LAND_OP | ( | a, | |
b | |||
) | (b) = (a) && (b) |
#define LOR_OP | ( | a, | |
b | |||
) | (b) = (a) || (b) |
#define LXOR_OP | ( | a, | |
b | |||
) | (b) = (!(a) && (b)) || ((a) && !(b)) |
#define BAND_OP | ( | a, | |
b | |||
) | (b) &= (a) |
#define BOR_OP | ( | a, | |
b | |||
) | (b) |= (a) |
#define BXOR_OP | ( | a, | |
b | |||
) | (b) ^= (a) |
#define MAXLOC_OP | ( | a, | |
b | |||
) | (b) = (a.value) < (b.value) ? (b) : (a) |
#define MINLOC_OP | ( | a, | |
b | |||
) | (b) = (a.value) < (b.value) ? (a) : (b) |
#define APPLY_FUNC | ( | a, | |
b, | |||
length, | |||
type, | |||
func | |||
) |
#define CREATE_MPI_OP | ( | name, | |
func | |||
) |
typedef struct s_smpi_mpi_op s_smpi_mpi_op_t |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | smpi_mpi_dt | , |
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 | |||
) |
int is_datatype_valid | ( | MPI_Datatype | datatype | ) |
Check if the datatype is usable for communications.
size_t smpi_datatype_size | ( | MPI_Datatype | datatype | ) |
MPI_Aint smpi_datatype_lb | ( | MPI_Datatype | datatype | ) |
MPI_Aint smpi_datatype_ub | ( | MPI_Datatype | datatype | ) |
int smpi_datatype_dup | ( | MPI_Datatype | datatype, |
MPI_Datatype * | new_t | ||
) |
int smpi_datatype_extent | ( | MPI_Datatype | datatype, |
MPI_Aint * | lb, | ||
MPI_Aint * | extent | ||
) |
MPI_Aint smpi_datatype_get_extent | ( | MPI_Datatype | datatype | ) |
void smpi_datatype_get_name | ( | MPI_Datatype | datatype, |
char * | name, | ||
int * | length | ||
) |
void smpi_datatype_set_name | ( | MPI_Datatype | datatype, |
char * | name | ||
) |
int smpi_datatype_copy | ( | void * | sendbuf, |
int | sendcount, | ||
MPI_Datatype | sendtype, | ||
void * | recvbuf, | ||
int | recvcount, | ||
MPI_Datatype | recvtype | ||
) |
void serialize_vector | ( | const void * | noncontiguous_vector, |
void * | contiguous_vector, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_vector | ( | const void * | contiguous_vector, |
void * | noncontiguous_vector, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
s_smpi_mpi_vector_t* smpi_datatype_vector_create | ( | int | block_stride, |
int | block_length, | ||
int | block_count, | ||
MPI_Datatype | old_type, | ||
int | size_oldtype | ||
) |
void smpi_datatype_create | ( | MPI_Datatype * | new_type, |
int | size, | ||
int | lb, | ||
int | ub, | ||
int | sizeof_substruct, | ||
void * | struct_type, | ||
int | flags | ||
) |
void smpi_datatype_free | ( | MPI_Datatype * | type | ) |
void smpi_datatype_use | ( | MPI_Datatype | type | ) |
void smpi_datatype_unuse | ( | MPI_Datatype | type | ) |
void serialize_contiguous | ( | const void * | noncontiguous_hvector, |
void * | contiguous_hvector, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_contiguous | ( | const void * | contiguous_vector, |
void * | noncontiguous_vector, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
void free_contiguous | ( | MPI_Datatype * | d | ) |
void use_contiguous | ( | MPI_Datatype * | d | ) |
s_smpi_mpi_contiguous_t* smpi_datatype_contiguous_create | ( | MPI_Aint | lb, |
int | block_count, | ||
MPI_Datatype | old_type, | ||
int | size_oldtype | ||
) |
int smpi_datatype_contiguous | ( | int | count, |
MPI_Datatype | old_type, | ||
MPI_Datatype * | new_type, | ||
MPI_Aint | lb | ||
) |
int smpi_datatype_vector | ( | int | count, |
int | blocklen, | ||
int | stride, | ||
MPI_Datatype | old_type, | ||
MPI_Datatype * | new_type | ||
) |
void free_vector | ( | MPI_Datatype * | d | ) |
void use_vector | ( | MPI_Datatype * | d | ) |
void serialize_hvector | ( | const void * | noncontiguous_hvector, |
void * | contiguous_hvector, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_hvector | ( | const void * | contiguous_vector, |
void * | noncontiguous_vector, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
s_smpi_mpi_hvector_t* smpi_datatype_hvector_create | ( | MPI_Aint | block_stride, |
int | block_length, | ||
int | block_count, | ||
MPI_Datatype | old_type, | ||
int | size_oldtype | ||
) |
void free_hvector | ( | MPI_Datatype * | d | ) |
void use_hvector | ( | MPI_Datatype * | d | ) |
int smpi_datatype_hvector | ( | int | count, |
int | blocklen, | ||
MPI_Aint | stride, | ||
MPI_Datatype | old_type, | ||
MPI_Datatype * | new_type | ||
) |
void serialize_indexed | ( | const void * | noncontiguous_indexed, |
void * | contiguous_indexed, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_indexed | ( | const void * | contiguous_indexed, |
void * | noncontiguous_indexed, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
void free_indexed | ( | MPI_Datatype * | type | ) |
void use_indexed | ( | MPI_Datatype * | type | ) |
s_smpi_mpi_indexed_t* smpi_datatype_indexed_create | ( | int * | block_lengths, |
int * | block_indices, | ||
int | block_count, | ||
MPI_Datatype | old_type, | ||
int | size_oldtype | ||
) |
int smpi_datatype_indexed | ( | int | count, |
int * | blocklens, | ||
int * | indices, | ||
MPI_Datatype | old_type, | ||
MPI_Datatype * | new_type | ||
) |
void serialize_hindexed | ( | const void * | noncontiguous_hindexed, |
void * | contiguous_hindexed, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_hindexed | ( | const void * | contiguous_hindexed, |
void * | noncontiguous_hindexed, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
void free_hindexed | ( | MPI_Datatype * | type | ) |
void use_hindexed | ( | MPI_Datatype * | type | ) |
s_smpi_mpi_hindexed_t* smpi_datatype_hindexed_create | ( | int * | block_lengths, |
MPI_Aint * | block_indices, | ||
int | block_count, | ||
MPI_Datatype | old_type, | ||
int | size_oldtype | ||
) |
int smpi_datatype_hindexed | ( | int | count, |
int * | blocklens, | ||
MPI_Aint * | indices, | ||
MPI_Datatype | old_type, | ||
MPI_Datatype * | new_type | ||
) |
void serialize_struct | ( | const void * | noncontiguous_struct, |
void * | contiguous_struct, | ||
int | count, | ||
void * | type | ||
) |
void unserialize_struct | ( | const void * | contiguous_struct, |
void * | noncontiguous_struct, | ||
int | count, | ||
void * | type, | ||
MPI_Op | op | ||
) |
void free_struct | ( | MPI_Datatype * | type | ) |
void use_struct | ( | MPI_Datatype * | type | ) |
s_smpi_mpi_struct_t* smpi_datatype_struct_create | ( | int * | block_lengths, |
MPI_Aint * | block_indices, | ||
int | block_count, | ||
MPI_Datatype * | old_types | ||
) |
int smpi_datatype_struct | ( | int | count, |
int * | blocklens, | ||
MPI_Aint * | indices, | ||
MPI_Datatype * | old_types, | ||
MPI_Datatype * | new_type | ||
) |
void smpi_datatype_commit | ( | MPI_Datatype * | datatype | ) |
CREATE_MPI_OP | ( | MPI_MAX | , |
max_func | |||
) |
CREATE_MPI_OP | ( | MPI_MIN | , |
min_func | |||
) |
CREATE_MPI_OP | ( | MPI_SUM | , |
sum_func | |||
) |
CREATE_MPI_OP | ( | MPI_PROD | , |
prod_func | |||
) |
CREATE_MPI_OP | ( | MPI_LAND | , |
land_func | |||
) |
CREATE_MPI_OP | ( | MPI_LOR | , |
lor_func | |||
) |
CREATE_MPI_OP | ( | MPI_LXOR | , |
lxor_func | |||
) |
CREATE_MPI_OP | ( | MPI_BAND | , |
band_func | |||
) |
CREATE_MPI_OP | ( | MPI_BOR | , |
bor_func | |||
) |
CREATE_MPI_OP | ( | MPI_BXOR | , |
bxor_func | |||
) |
CREATE_MPI_OP | ( | MPI_MAXLOC | , |
maxloc_func | |||
) |
CREATE_MPI_OP | ( | MPI_MINLOC | , |
minloc_func | |||
) |
CREATE_MPI_OP | ( | MPI_REPLACE | , |
replace_func | |||
) |
MPI_Op smpi_op_new | ( | MPI_User_function * | function, |
int | commute | ||
) |
int smpi_op_is_commute | ( | MPI_Op | op | ) |
void smpi_op_destroy | ( | MPI_Op | op | ) |
int smpi_type_attr_delete | ( | MPI_Datatype | type, |
int | keyval | ||
) |
int smpi_type_attr_get | ( | MPI_Datatype | type, |
int | keyval, | ||
void * | attr_value, | ||
int * | flag | ||
) |
int smpi_type_attr_put | ( | MPI_Datatype | type, |
int | keyval, | ||
void * | attr_value | ||
) |
int smpi_type_keyval_create | ( | MPI_Type_copy_attr_function * | copy_fn, |
MPI_Type_delete_attr_function * | delete_fn, | ||
int * | keyval, | ||
void * | extra_state | ||
) |
int smpi_type_keyval_free | ( | int * | keyval | ) |
int smpi_mpi_pack | ( | void * | inbuf, |
int | incount, | ||
MPI_Datatype | type, | ||
void * | outbuf, | ||
int | outcount, | ||
int * | position, | ||
MPI_Comm | comm | ||
) |
int smpi_mpi_unpack | ( | void * | inbuf, |
int | insize, | ||
int * | position, | ||
void * | outbuf, | ||
int | outcount, | ||
MPI_Datatype | type, | ||
MPI_Comm | comm | ||
) |
xbt_dict_t smpi_type_keyvals = NULL |
int type_keyval_id =0 |