This is the MadMPI private interface. More...
Files | |
file | nm_mpi_private.h |
Internal data structures for MPI. | |
file | nm_mpi_private_syms.h |
internal symbols for MPI functions | |
This is the MadMPI private interface.
#define FREE_AND_SET_NULL | ( | p | ) | do { padico_free(p); p = NULL; } while (0/*CONSTCOND*/) |
Definition at line 183 of file nm_mpi_private.h.
#define NM_MPI_COMMUNICATOR_CHECK | ( | P_COMM | ) |
check that the given communicator is valid
Definition at line 150 of file nm_mpi_private.h.
#define NM_MPI_DATATYPE_CHECK | ( | P_DATATYPE | ) |
check that the given datatype is valid
Definition at line 165 of file nm_mpi_private.h.
#define nm_mpi_errhandler_exec | ( | P_ERRHANDLER, | |
KIND, | |||
HANDLE, | |||
ERR | |||
) |
Definition at line 108 of file nm_mpi_private.h.
#define NM_MPI_ERROR_COMM | ( | P_COMM, | |
ERRORCODE | |||
) |
Definition at line 115 of file nm_mpi_private.h.
#define NM_MPI_ERROR_FILE | ( | P_FILE, | |
ERRORCODE | |||
) |
raise an error on the given file
Definition at line 133 of file nm_mpi_private.h.
#define NM_MPI_ERROR_FILE_DEFAULT | ( | ERRORCODE | ) |
raise an error on the default errhandler for file (attached to MPI_FILE_NULL)
Definition at line 139 of file nm_mpi_private.h.
#define NM_MPI_ERROR_INTERNAL | ( | ERRORCODE | ) | (ERRORCODE) |
marks an error as internal, not needing to call the handler
Definition at line 113 of file nm_mpi_private.h.
#define NM_MPI_ERROR_SESSION | ( | P_SESSION, | |
ERRORCODE | |||
) |
raise an error on the given session
Definition at line 121 of file nm_mpi_private.h.
#define NM_MPI_ERROR_WIN | ( | P_WIN, | |
ERRORCODE | |||
) |
raise an error on the given window
Definition at line 127 of file nm_mpi_private.h.
#define NM_MPI_ERROR_WORLD | ( | ERRORCODE | ) |
Definition at line 144 of file nm_mpi_private.h.
#define NM_MPI_FATAL_ERROR | ( | ... | ) | NM_FATAL(__VA_ARGS__) |
Definition at line 179 of file nm_mpi_private.h.
#define NM_MPI_GROUP_CHECK | ( | P_GROUP | ) |
check that the given group is valid
Definition at line 155 of file nm_mpi_private.h.
#define NM_MPI_PMPI | ( | SYM_MPI | ) | __typeof__(SYM_MPI) P ## SYM_MPI /* trailing semicolon is supposed to be added by caller */ |
#define nm_mpi_refcount_inc | ( | REFCOUNT, | |
HOLDER | |||
) | nm_mpi_refcount_inc_internal(REFCOUNT, HOLDER, __FUNCTION__, __FILE__, __LINE__) |
Definition at line 241 of file nm_mpi_private.h.
#define NM_MPI_REFCOUNT_INVALID { .refcount = -1 } |
Definition at line 206 of file nm_mpi_private.h.
#define NM_MPI_SESSION_CHECK | ( | P_SESSION | ) |
check that the given session is valid
Definition at line 160 of file nm_mpi_private.h.
#define nm_mpi_spin_destroy | ( | LOCK | ) | nm_spin_destroy(LOCK) |
Definition at line 62 of file nm_mpi_private.h.
#define nm_mpi_spin_init | ( | LOCK | ) | nm_spin_init(LOCK) |
Definition at line 61 of file nm_mpi_private.h.
#define nm_mpi_spin_lock | ( | LOCK | ) | nm_spin_lock(LOCK) |
Definition at line 63 of file nm_mpi_private.h.
#define nm_mpi_spin_unlock | ( | LOCK | ) | nm_spin_unlock(LOCK) |
Definition at line 64 of file nm_mpi_private.h.
#define nm_mpi_spinlock_t nm_spinlock_t |
Definition at line 60 of file nm_mpi_private.h.
#define NM_MPI_TAG_CHECK_RECV | ( | TAG | ) | do { if(((TAG) != MPI_ANY_TAG) && ((TAG) < 0 || (TAG) > NM_MPI_TAG_MAX)) return NM_MPI_ERROR_COMM(p_comm, MPI_ERR_TAG); } while(0) |
check that tag is a valid tag for a recv operation
Definition at line 170 of file nm_mpi_private.h.
#define NM_MPI_TAG_CHECK_SEND | ( | TAG | ) | do { if( ((TAG) < 0) || ((TAG) > NM_MPI_TAG_MAX) || ((TAG) == MPI_ANY_TAG)) return NM_MPI_ERROR_COMM(p_comm, MPI_ERR_TAG); } while(0) |
check that tag is a valid tag for a send operation
Definition at line 174 of file nm_mpi_private.h.
#define NM_MPI_TAG_MAX ((nm_tag_t)(0x7FFFFFFF)) |
Maximum value of the tag specified by the end-user.
Definition at line 306 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_ALLGATHER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x1D)) |
Definition at line 323 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_ALLREDUCE ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x1A)) |
Definition at line 320 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_ALLTOALL ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x17)) |
Definition at line 317 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_ALLTOALLV ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x18)) |
Definition at line 318 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_BARRIER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x11)) |
Definition at line 311 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_BASE ((nm_tag_t)(0xF0000000)) |
Base value for private tags.
Definition at line 310 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_BCAST ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x12)) |
Definition at line 312 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_COMM_CREATE ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0xF2)) |
Definition at line 330 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_COMM_INFO ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0xF3)) |
Definition at line 331 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_COMM_SPLIT ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0xF1)) |
Definition at line 329 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_FILE_OPEN ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0xF4)) |
Definition at line 332 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_GATHER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x13)) |
Definition at line 313 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_GATHERV ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x14)) |
Definition at line 314 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_MASK ((nm_tag_t)(0x80000000)) |
Mask for private tags.
Definition at line 308 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_REDUCE ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x19)) |
Definition at line 319 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_REDUCESCATTER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x1C)) |
Definition at line 322 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_ACC ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x3)) |
accumulate
Definition at line 357 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_BASE ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x08000000)) |
Masks for RMA-communication tags.
Definition at line 334 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x04000000)) |
Definition at line 335 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_CAS_REQ ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x6)) |
compare and swap
Definition at line 360 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_END ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x02)) |
Definition at line 348 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_FAO_REQ ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x5)) |
fetch and op
Definition at line 359 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_GACC_REQ ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x4)) |
get_accumulate
Definition at line 358 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_GET_REQ ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x2)) |
Definition at line 356 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_LOCK ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x13)) |
lock request
Definition at line 349 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_LOCK_R ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x04)) |
lock ACK
Definition at line 350 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK |
Definition at line 344 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_AOP ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0xF0)) |
acc operation mask
Definition at line 337 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_FOP |
full operation mask
Definition at line 339 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_OP ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x0F)) |
rma operation mask
Definition at line 336 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_SEQ ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0xFFFF00)) |
Definition at line 340 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_SYNC ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0xFFFFFFFF000000FF)) |
Definition at line 346 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_USER |
Definition at line 342 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_MASK_WIN ((nm_tag_t)(0xFFFFFFFF00000000 | NM_MPI_TAG_PRIVATE_RMA_BASE)) |
Definition at line 341 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_OP_CHECK ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x0F)) |
If dynamic window, tells if target address is valid.
Definition at line 354 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_PUT ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0x1)) |
Definition at line 355 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_REQ_RESP ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE | 0xF)) |
Definition at line 361 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_START ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x01)) |
Definition at line 347 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_UNLOCK ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x05)) |
unlock request
Definition at line 351 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_RMA_UNLOCK_R ((nm_tag_t)(NM_MPI_TAG_PRIVATE_RMA_BASE_SYNC | 0x06)) |
unlock ACK
Definition at line 352 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_SCAN ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x1B)) |
Definition at line 321 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_SCATTER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x15)) |
Definition at line 315 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_SCATTERV ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x16)) |
Definition at line 316 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_TYPE_ADD ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x21)) |
add a datatype; tag is 0xF0XXXX21 where XXXX is seq number (16 bits)
Definition at line 324 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_TYPE_ADD_ACK ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x22)) |
answer to add request
Definition at line 325 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_WIN_BARRIER ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x25)) |
Definition at line 328 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_WIN_FENCE ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x24)) |
Definition at line 327 of file nm_mpi_private.h.
#define NM_MPI_TAG_PRIVATE_WIN_INIT ((nm_tag_t)(NM_MPI_TAG_PRIVATE_BASE | 0x23)) |
Definition at line 326 of file nm_mpi_private.h.
#define NM_MPI_TRACE | ( | str, | |
... | |||
) | NM_TRACEF(str, ## __VA_ARGS__) |
Definition at line 181 of file nm_mpi_private.h.
#define NM_MPI_WARNING | ( | ... | ) | NM_WARN(__VA_ARGS__) |
Definition at line 177 of file nm_mpi_private.h.
typedef struct nm_mpi_errhandler_s nm_mpi_errhandler_t |
error handler
void nm_mpi_info_destructor | ( | char * | p_key, |
char * | p_data | ||
) |
|
inlinestatic |
decrement refcount for holder; returns refcount (if 0, caller may free ref-counted resource)
Definition at line 279 of file nm_mpi_private.h.
References NM_MPI_FATAL_ERROR, nm_mpi_spin_lock, nm_mpi_spin_unlock, and nm_mpi_refcount_s::refcount.
|
inlinestatic |
Definition at line 232 of file nm_mpi_private.h.
References nm_mpi_refcount_dump(), and nm_mpi_spin_destroy.
|
inlinestatic |
Definition at line 220 of file nm_mpi_private.h.
References NM_MPI_WARNING.
Referenced by nm_mpi_refcount_destroy().
|
inlinestatic |
Definition at line 244 of file nm_mpi_private.h.
References h, nm_mpi_spin_lock, nm_mpi_spin_unlock, NM_MPI_WARNING, and nm_mpi_refcount_s::refcount.
|
inlinestatic |
initialize a new refcount object; get the type of object and its ID to make debugging easier
Definition at line 209 of file nm_mpi_private.h.
References id, nm_mpi_spin_init, and nm_mpi_refcount_s::refcount.
PUK_HASHTABLE_TYPE | ( | nm_mpi_info | , |
char * | , | ||
char * | , | ||
& | puk_hash_string_default_hash, | ||
& | puk_hash_string_default_eq, | ||
& | nm_mpi_info_destructor | ||
) |
hashtable type for info entries
PUK_LIST_TYPE | ( | nm_mpi_refcount_holder | , |
const void *p_holder;const char *func;const char *file;int line; | |||
) |
elements for nm_mpi_refcount_s
|
extern |
default errhandler for files, attached to MPI_FILE_NULL