1 #ifndef _XMPCO_INTERNAL_H
2 #define _XMPCO_INTERNAL_H
18 #define _ROUND_UP(n,p) (((((size_t)(n))-1)/(p)+1)*(p))
19 #define _ROUND_UP_PLUS(n,p) (((n)>0) ? _ROUND_UP(n,p) : (p))
20 #define ROUND_UP_COMM(n) _ROUND_UP((n),COMM_UNIT)
21 #define ROUND_UP_MALLOC(n) _ROUND_UP_PLUS((n),MALLOC_UNIT)
68 int namelen,
char *name);
71 int namelen,
char *name);
95 int element,
int coindex,
char *localAddr,
96 int rank,
int skip[],
int skip_local[],
int count[]);
98 int element,
int coindex,
char *result);
100 int element,
int coindex,
char *result,
101 int rank,
int skip[],
int count[]);
104 int coindex,
char *rhs,
SyncMode sync_mode);
106 int coindex,
char *rhsAddr,
int rank,
107 int skip[],
int skip_rhs[],
int count[],
110 int coindex,
char *rhs,
int rank,
111 int skip[],
int count[],
SyncMode sync_mode);
116 int corank,
int dim);
118 int corank,
int image[]);
177 size_t *offset,
char **name);
237 extern void xmp_sync_images(
const int num,
int* image_set,
int* status);
Definition: xmp_data_struct.h:40
structure for each coarray variable One or more coarrays can be linked from a single memory chunk and...
Definition: _xmpco_alloc.h:92
MEMORY MANAGEMENT STRUCTURE-II (for dynamic ALLOCATE/DEALLOCATE stmts.
Definition: _xmpco_alloc.h:111
structure for each malloc/free call Every memory chunk is linked both:
Definition: _xmpco_alloc.h:76
MEMORY MANAGEMENT STRUCTURE-I (for automatic deallocation) runtime resource corresponding to a proced...
Definition: _xmpco_alloc.h:64
MEMORY MANAGEMENT STRUCTURE-III (for binary search for memory chunk) table of memory chunks sorted in...
Definition: _xmpco_alloc.h:121
unsigned long orgAddr
Definition: _xmpco_alloc.h:122
void xmp_sync_image(int image, int *status)
Execute sync_image()
Definition: xmp_coarray.c:1455
void xmp_sync_memory(const int *status)
Execute sync_memory()
Definition: xmp_coarray.c:1405
void XMPCO_GET_arrayStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *localAddr, int rank, int skip[], int skip_local[], int count[])
Definition: xmpco_get_stmt.c:91
void XMPCO_epilog(ResourceSet_t **rset)
Definition: xmpco_alloc.c:550
size_t xmp_coarray_allocated_bytes(void)
Definition: xmpco_alloc.c:112
int _XMPCO_transImage_current2initial(int image)
Definition: xmpco_lib.c:222
size_t _XMPCO_get_sizeOfMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:735
void _XMPCO_set_codim_withBounds(CoarrayInfo_t *cp, int dim, int lb, int ub)
Definition: xmpco_alloc.c:618
void XMPCO_GET_arrayExpr(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *result, int rank, int skip[], int count[])
Definition: xmpco_get_expr.c:126
void XMPCO_PUT_arrayStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *rhsAddr, int rank, int skip[], int skip_rhs[], int count[], SyncMode sync_mode)
Definition: xmpco_put.c:189
void _XMPCO_set_initialNumImages(void)
Definition: xmpco_lib.c:118
MPI_Comm _XMPCO_get_currentComm(void)
Definition: xmpco_lib.c:163
int _XMPCO_transImage_withComm(MPI_Comm comm1, int image1, MPI_Comm comm2)
Definition: xmpco_lib.c:190
void _XMPCO_set_isEagerCommMode(BOOL sw)
Definition: xmpco_params.c:26
void _XMPCO_coarrayInit_get(void)
Definition: xmpco_get_expr.c:39
void _XMPCO_coarrayInit_getsub(void)
Definition: xmpco_get_stmt.c:77
size_t _XMPCO_get_offsetInCoarray(CoarrayInfo_t *cinfo, char *addr)
Definition: xmpco_alloc.c:716
void _XMPCO_set_localBufSize(unsigned size)
Definition: xmpco_params.c:37
void * _XMPCO_get_descForMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:725
void _XMP_coarray_rdma_array_set_1(const long, const long, const long, const long, const size_t)
Set transfer 1-dim array information.
Definition: xmp_coarray.c:655
size_t _XMPCO_get_offsetInMemoryChunk(CoarrayInfo_t *cinfo, char *addr)
Definition: xmpco_alloc.c:740
void _XMPCO_fatal(char *format,...)
Definition: xmpco_msg.c:4
unsigned _XMPCO_get_poolThreshold(void)
Definition: xmpco_params.c:83
char * _XMPCO_get_baseAddrOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:706
int _XMPCO_get_initialNumImages(void)
Definition: xmpco_lib.c:133
void XMPCO_PUT_spread(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *rhs, int rank, int skip[], int count[], SyncMode sync_mode)
Definition: xmpco_put.c:246
MPI_Comm _XMPCO_consume_comm_current(void)
Definition: xmpco_lib.c:315
void xmp_sync_all(const int *status)
Execute sync_all()
Definition: xmp_coarray.c:1423
int _XMPCO_this_image_onNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:95
void XMPCO_sync_all(void)
Definition: xmpco_sync.c:11
void _XMPCO_reset_isMsgMode(void)
Definition: xmpco_params.c:74
void XMPCO_GET_scalarExpr(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *result)
Definition: xmpco_get_expr.c:52
BOOL _XMPCO_is_subset_exec(void)
Definition: xmpco_lib.c:176
void _XMPCO_set_imageDirNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:277
void _XMP_coarray_rdma_image_set_1(const int)
Set 1-dim image information.
Definition: xmp_coarray.c:942
void XMPCO_PUT_scalarStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *rhs, SyncMode sync_mode)
Definition: xmpco_put.c:118
CoarrayInfo_t * XMPCO_regmem_staticCoarray(void *var, int count, size_t element, int namelen, char *name)
Similar to _alloc_static_coarray() except that the coarray is allocated not by the runtime but by the...
Definition: xmpco_alloc.c:257
CoarrayInfo_t * _XMPCO_set_nodes(CoarrayInfo_t *cinfo, _XMP_nodes_t *nodes)
Definition: xmpco_alloc.c:681
BOOL _XMPCO_get_isSafeBufferMode(void)
Definition: xmpco_params.c:87
void * _XMPCO_get_infoOfCtrlData(char **baseAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:759
void XMPCO_count_size(int count, size_t element)
Definition: xmpco_alloc.c:506
void XMPCO_deregmem_coarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:374
size_t xmp_coarray_garbage_bytes(void)
Definition: xmpco_alloc.c:137
void _XMP_coarray_regmem(void **, void *)
Create coarray object but not allocate coarray.
Definition: xmp_coarray.c:359
void _XMPCO_coarrayInit_put(void)
Definition: xmpco_put.c:105
void _XMPCO_debugPrint(char *format,...)
Definition: xmpco_msg.c:20
MPI_Comm _XMPCO_get_comm_fromCoarrayInfo(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:527
MPI_Comm _XMPCO_get_comm_of_nodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:83
char * _XMPCO_get_orgAddrOfMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:730
void _XMP_coarray_rdma_coarray_set_1(const long, const long, const long)
Set transfer 1-dim coarray information.
Definition: xmp_coarray.c:434
_SyncMode
Definition: xmpco_internal.h:23
@ syncNONBLOCK
Definition: xmpco_internal.h:24
@ syncBLOCK
Definition: xmpco_internal.h:25
@ syncRUNTIME
Definition: xmpco_internal.h:27
@ syncATOMIC
Definition: xmpco_internal.h:26
void XMPCO_sync_all_withComm(MPI_Comm comm)
Definition: xmpco_sync.c:54
void xmp_sync_images(const int num, int *image_set, int *status)
Execute sync_images()
Definition: xmp_coarray.c:1439
CoarrayInfo_t * XMPCO_find_descptr(char *addr, int namelen, char *name)
generate and return a descriptor for a coarray DUMMY ARGUMENT
Definition: xmpco_alloc.c:574
void _XMP_coarray_malloc(void **, void *)
Create coarray object and allocate coarray.
Definition: xmp_coarray.c:333
void _XMPCO_set_isMsgMode(BOOL sw)
Definition: xmpco_params.c:48
CoarrayInfo_t * XMPCO_malloc_coarray(char **addr, int count, size_t element, ResourceSet_t *rset)
Definition: xmpco_alloc.c:159
BOOL _XMPCO_get_isSyncPutMode(void)
Definition: xmpco_params.c:88
int XMPCO_this_image_coarray_dim(CoarrayInfo_t *cinfo, int corank, int dim)
Definition: xmpco_lib.c:45
void XMPCO_malloc_pool(void)
Definition: xmpco_alloc.c:455
void _XMPCO_set_codim_withSize(CoarrayInfo_t *cp, int dim, int lb, int size)
Definition: xmpco_alloc.c:645
void XMPCO_this_image_coarray(CoarrayInfo_t *cinfo, int corank, int image[])
Definition: xmpco_lib.c:17
void _XMPCO_set_poolThreshold(unsigned size)
Definition: xmpco_params.c:28
size_t xmp_coarray_malloc_bytes(void)
Definition: xmpco_alloc.c:107
int _XMPCO_get_initialThisImage(void)
Definition: xmpco_lib.c:128
MPI_Comm _XMPCO_get_comm_current(void)
Definition: xmpco_lib.c:304
_XMP_nodes_t * _XMPCO_get_imageDirNodes(void)
Definition: xmpco_lib.c:286
void _XMPCO_clean_imageDirNodes(void)
Definition: xmpco_lib.c:272
BOOL _XMPCO_get_isMsgMode(void)
Definition: xmpco_params.c:86
void _XMP_coarray_contiguous_get(const int, void *, const void *, const long, const long, const long, const long)
void _XMPCO_set_isMsgMode_quietly(BOOL sw)
Definition: xmpco_params.c:68
CoarrayInfo_t * XMPCO_malloc_staticCoarray(char **addr, int count, size_t element, int namelen, char *name)
have a share of memory in the pool (if not larger than threshold) or allocate individually (if larger...
Definition: xmpco_alloc.c:221
CoarrayInfo_t * XMPCO_regmem_coarray(void *var, int count, size_t element, ResourceSet_t *rset)
Definition: xmpco_alloc.c:189
_XMP_nodes_t * _XMPCO_consume_imageDirNodes(void)
Definition: xmpco_lib.c:292
void _XMPCO_set_isSafeBufferMode(BOOL sw)
Definition: xmpco_params.c:24
void _XMPCO_checkIfInTask(char *msgopt)
Definition: xmpco_alloc.c:1425
void _XMPCO_set_isSyncPutMode(BOOL sw)
Definition: xmpco_params.c:25
int _XMPCO_get_currentThisImage(void)
Definition: xmpco_lib.c:153
void * _XMPCO_get_infoOfLocalBuf(char **baseAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:770
enum _SyncMode SyncMode
Definition: xmpco_internal.h:29
void XMPCO_free_coarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:351
void XMPCO_sync_all_auto(void)
Definition: xmpco_sync.c:34
int _XMPCO_get_initial_image_withDescPtr(int image, CoarrayInfo_t *descPtr)
Definition: xmpco_lib.c:246
void _XMPCO_set_corank(CoarrayInfo_t *cp, int corank)
Definition: xmpco_alloc.c:606
char * _XMPCO_get_nameOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:701
void xmp_sync_images_all(int *status)
Execute sync_images_all()
Definition: xmp_coarray.c:1463
BOOL _XMPCO_get_isEagerCommMode(void)
Definition: xmpco_params.c:89
size_t _XMPCO_get_sizeOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:711
void _XMP_coarray_get(void *, void *, void *)
Definition: xmp_coarray.c:1223
void _XMP_coarray_malloc_image_info_1()
Set 1-dim image information.
Definition: xmp_coarray.c:155
void * _XMPCO_get_desc_fromLocalAddr(char *localAddr, char **orgAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:784
int _XMPCO_get_currentNumImages(void)
Definition: xmpco_lib.c:143
#define BOOL
Definition: xmpco_internal.h:14
void _XMP_coarray_malloc_info_1(const long, const size_t)
Set 1-dim coarray information.
Definition: xmp_coarray.c:31
size_t _XMPCO_get_localBufSize(void)
Definition: xmpco_params.c:84
int _XMPCO_nowInTask(void)
Definition: xmpco_alloc.c:1420
BOOL _XMPCO_isAddrInMemoryChunk(char *localAddr, CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:747
void _XMPCO_set_initialThisImage(void)
Definition: xmpco_lib.c:107
void _XMPCO_set_varname(CoarrayInfo_t *cp, int namelen, char *name)
Definition: xmpco_alloc.c:673
int _XMPCO_num_images_onNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:90
void _XMP_coarray_contiguous_put(const int, void *, const void *, const long, const long, const long, const long)
void _XMP_coarray_put(void *, void *, void *)
Definition: xmp_coarray.c:1160
void XMPCO_prolog(ResourceSet_t **rset, int namelen, char *name)
Definition: xmpco_alloc.c:541