libxmp/libxmpf in Omni Compiler  1.3.4
xmpco_internal.h
Go to the documentation of this file.
1 #ifndef _XMPCO_INTERNAL_H
2 #define _XMPCO_INTERNAL_H
3 
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <stdarg.h>
8 
9 #include "xmp_internal.h"
10 #include "xmp_data_struct.h"
11 #include "xmpco_params.h"
12 
13 
14 #define BOOL int
15 #define TRUE 1
16 #define FALSE 0
17 
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)
22 
23 enum _SyncMode {
25  syncBLOCK = 1,
28 };
29 typedef enum _SyncMode SyncMode;
30 
31 
32 /*****************************************\
33  typedef
34 \*****************************************/
35 // MEMORY MANAGEMENT STRUCTURE-I (linkage with procedures)
36 typedef struct _resourceSet_t ResourceSet_t; // corresponding to a procedure
37 typedef struct _memoryChunk_t MemoryChunk_t; // contains one or more coarrays
38 typedef struct _coarrayInfo_t CoarrayInfo_t; // corresponding to a coarray
39 
40 // MEMORY MANAGEMENT STRUCTURE-II (management of the order of alloc/free)
41 typedef struct _memoryChunkOrder_t MemoryChunkOrder_t; // contains a pointer to Chunk
42 
43 // MEMORY MANAGEMENT STRUCTURE-III (for binary search of memory chunk)
44 typedef struct _sortedChunkTable_t SortedChunkTable_t; // contains a pointer to Chunk
45 
46 
47 /*****************************************\
48  Built-in Functions for Users
49 \*****************************************/
50 // inquiry functions (xmpco_alloc.c)
51 extern size_t xmp_coarray_malloc_bytes(void);
52 extern size_t xmp_coarray_allocated_bytes(void);
53 extern size_t xmp_coarray_garbage_bytes(void);
54 
55 
56 /*****************************************\
57  Object-library Interface
58 \*****************************************/
59 // allocation & registration (xmpco_alloc.c)
60 extern CoarrayInfo_t *
61 XMPCO_malloc_coarray(char **addr, int count, size_t element,
62  ResourceSet_t *rset);
63 extern CoarrayInfo_t *
64 XMPCO_regmem_coarray(void *var, int count, size_t element,
65  ResourceSet_t *rset);
66 extern CoarrayInfo_t *
67 XMPCO_malloc_staticCoarray(char **addr, int count, size_t element,
68  int namelen, char *name);
69 extern CoarrayInfo_t *
70 XMPCO_regmem_staticCoarray(void *var, int count, size_t element,
71  int namelen, char *name);
72 
73 // deallocation & deregistration (xmpco_alloc.c)
74 extern void XMPCO_free_coarray(CoarrayInfo_t *cinfo);
75 extern void XMPCO_deregmem_coarray(CoarrayInfo_t *cinfo);
76 
77 // initialization & finalization (xmpco_alloc.c)
78 extern void XMPCO_malloc_pool(void);
79 extern void XMPCO_count_size(int count, size_t element);
80 
81 // procedure entry & exit (xmpco_alloc.c)
82 extern void XMPCO_prolog(ResourceSet_t **rset, int namelen, char *name);
83 extern void XMPCO_epilog(ResourceSet_t **rset);
84 
85 // find descriptor of a dummy argument (xmpco_alloc.c)
86 extern CoarrayInfo_t *XMPCO_find_descptr(char *addr, int namelen, char *name);
87 
88 // synchronizations (xmpco_sync.c)
89 extern void XMPCO_sync_all(void);
90 extern void XMPCO_sync_all_auto(void);
91 extern void XMPCO_sync_all_withComm(MPI_Comm comm);
92 
93 // PUT and GET
94 extern void XMPCO_GET_arrayStmt(CoarrayInfo_t *descPtr, char *baseAddr,
95  int element, int coindex, char *localAddr,
96  int rank, int skip[], int skip_local[], int count[]);
97 extern void XMPCO_GET_scalarExpr(CoarrayInfo_t *descPtr, char *baseAddr,
98  int element, int coindex, char *result);
99 extern void XMPCO_GET_arrayExpr(CoarrayInfo_t *descPtr, char *baseAddr,
100  int element, int coindex, char *result,
101  int rank, int skip[], int count[]);
102 
103 extern void XMPCO_PUT_scalarStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element,
104  int coindex, char *rhs, SyncMode sync_mode);
105 extern void XMPCO_PUT_arrayStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element,
106  int coindex, char *rhsAddr, int rank,
107  int skip[], int skip_rhs[], int count[],
108  SyncMode sync_mode);
109 extern void XMPCO_PUT_spread(CoarrayInfo_t *descPtr, char *baseAddr, int element,
110  int coindex, char *rhs, int rank,
111  int skip[], int count[], SyncMode sync_mode);
112 
113 
114 // inquire functions (xmpco_lib.c)
116  int corank, int dim);
117 extern void XMPCO_this_image_coarray(CoarrayInfo_t *cinfo,
118  int corank, int image[]);
119 
120 
121 /*****************************************\
122  set/get options and environment vars
123 \*****************************************/
124 // set functions (xmpco_params.c)
125 extern void _XMPCO_set_poolThreshold(unsigned size);
126 extern void _XMPCO_set_localBufSize(unsigned size);
127 extern void _XMPCO_set_isMsgMode(BOOL sw);
128 extern void _XMPCO_set_isMsgMode_quietly(BOOL sw);
129 extern void _XMPCO_set_isSafeBufferMode(BOOL sw);
130 extern void _XMPCO_set_isSyncPutMode(BOOL sw);
131 extern void _XMPCO_set_isEagerCommMode(BOOL sw);
132 
133 extern void _XMPCO_reset_isMsgMode(void);
134 
135 // get functions (xmpco_params.c)
136 extern unsigned _XMPCO_get_poolThreshold(void);
137 extern size_t _XMPCO_get_localBufSize(void);
138 extern BOOL _XMPCO_get_isMsgMode(void);
139 extern BOOL _XMPCO_get_isSafeBufferMode(void);
140 extern BOOL _XMPCO_get_isSyncPutMode(void);
141 extern BOOL _XMPCO_get_isEagerCommMode(void);
142 
143 
144 /*****************************************\
145  Internal library Interface
146 \*****************************************/
147 // CoarrayInfo (xmpco_alloc.c)
148 extern char *_XMPCO_get_nameOfCoarray(CoarrayInfo_t *cinfo);
149 extern char *_XMPCO_get_baseAddrOfCoarray(CoarrayInfo_t *cinfo);
150 extern size_t _XMPCO_get_sizeOfCoarray(CoarrayInfo_t *cinfo);
151 extern size_t _XMPCO_get_offsetInCoarray(CoarrayInfo_t *cinfo, char *addr);
152 extern void _XMPCO_set_corank(CoarrayInfo_t *cp, int corank);
153 extern void _XMPCO_set_codim_withBounds(CoarrayInfo_t *cp, int dim,
154  int lb, int ub);
155 extern void _XMPCO_set_codim_withSize(CoarrayInfo_t *cp, int dim,
156  int lb, int size);
157 extern void _XMPCO_set_varname(CoarrayInfo_t *cp, int namelen,
158  char *name);
160  _XMP_nodes_t *nodes);
161 
162 // MemoryChunk (xmpco_alloc.c)
163 extern void *_XMPCO_get_descForMemoryChunk(CoarrayInfo_t *cinfo);
165 extern size_t _XMPCO_get_sizeOfMemoryChunk(CoarrayInfo_t *cinfo);
166 extern size_t _XMPCO_get_offsetInMemoryChunk(CoarrayInfo_t *cinfo, char *addr);
167 extern BOOL _XMPCO_isAddrInMemoryChunk(char *localAddr, CoarrayInfo_t *cinfo);
168 
169 // system-defined coarray variables (xmpco_alloc.c)
170 extern void *_XMPCO_get_infoOfCtrlData(char **baseAddr, size_t *offset,
171  char **name);
172 extern void *_XMPCO_get_infoOfLocalBuf(char **baseAddr, size_t *offset,
173  char **name);
174 
175 // other inquire functions (xmpco_alloc.c)
176 extern void *_XMPCO_get_desc_fromLocalAddr(char *localAddr, char **orgAddr,
177  size_t *offset, char **name);
178 extern MPI_Comm _XMPCO_get_comm_fromCoarrayInfo(CoarrayInfo_t *cinfo);
179 
180 // error handling and messages (xmpco_msg.c)
181 extern void _XMPCO_fatal(char *format, ...);
182 extern void _XMPCO_debugPrint(char *format, ...);
183 
184 // initialization for PUT/GET (xmpco_put.c, xmpco_get_*.c)
185 extern void _XMPCO_coarrayInit_get(void);
186 extern void _XMPCO_coarrayInit_getsub(void);
187 extern void _XMPCO_coarrayInit_put(void);
188 
189 
190 // TEMPORARY restriction check
191 extern int _XMPCO_nowInTask(void); // for restriction check
192 extern void _XMPCO_checkIfInTask(char *msgopt); // restriction check
193 
194 // images (xmpco_lib.c)
195 extern void _XMPCO_set_initialThisImage(void);
196 extern void _XMPCO_set_initialNumImages(void);
197 extern int _XMPCO_get_initialThisImage(void);
198 extern int _XMPCO_get_initialNumImages(void);
199 
200 extern int _XMPCO_get_currentThisImage(void);
201 extern int _XMPCO_get_currentNumImages(void);
202 
203 extern MPI_Comm _XMPCO_get_currentComm(void);
204 extern BOOL _XMPCO_is_subset_exec(void);
205 extern int _XMPCO_transImage_withComm(MPI_Comm comm1, int image1,
206  MPI_Comm comm2);
207 extern int _XMPCO_transImage_current2initial(int image);
208 extern int _XMPCO_get_initial_image_withDescPtr(int image,
209  CoarrayInfo_t *descPtr);
210 
211 // image-directive nodes (xmpco_lib.c)
212 extern void _XMPCO_clean_imageDirNodes(void);
213 extern void _XMPCO_set_imageDirNodes(_XMP_nodes_t *nodes);
216 
217 // values obtained from nodes (xmpco_lib.c)
218 extern MPI_Comm _XMPCO_get_comm_of_nodes(_XMP_nodes_t *nodes);
219 extern int _XMPCO_num_images_onNodes(_XMP_nodes_t *nodes);
220 extern int _XMPCO_this_image_onNodes(_XMP_nodes_t *nodes);
221 
222 // current communicator (xmpco_lib.c)
223 extern MPI_Comm _XMPCO_get_comm_current(void);
224 extern MPI_Comm _XMPCO_consume_comm_current(void);
225 
226 
227 /*****************************************\
228  lower-level interface
229  (TEMPORARY)
230 \*****************************************/
231 
232 //#include "xmp_func_decl.h" // conflicts with xmp_internal.h
233 
234 extern void xmp_sync_memory(const int* status);
235 extern void xmp_sync_all(const int* status);
236 extern void xmp_sync_image(int image, int* status);
237 extern void xmp_sync_images(const int num, int* image_set, int* status);
238 extern void xmp_sync_images_all(int* status);
239 
240 extern void _XMP_coarray_malloc_info_1(const long, const size_t);
242 extern void _XMP_coarray_malloc(void **, void *);
243 extern void _XMP_coarray_regmem(void **, void *);
244 extern void _XMP_coarray_contiguous_put(const int, void*, const void*, const long, const long, const long, const long);
245 extern void _XMP_coarray_contiguous_get(const int, void*, const void*, const long, const long, const long, const long);
246 
247 extern void _XMP_coarray_rdma_coarray_set_1(const long, const long, const long);
248 extern void _XMP_coarray_rdma_array_set_1(const long, const long, const long, const long, const size_t);
249 extern void _XMP_coarray_rdma_image_set_1(const int);
250 extern void _XMP_coarray_put(void*, void*, void *);
251 extern void _XMP_coarray_get(void*, void*, void *);
252 
253 
254 #endif
_resourceSet_t
MEMORY MANAGEMENT STRUCTURE-I (for automatic deallocation) runtime resource corresponding to a proced...
Definition: _xmpco_alloc.h:64
_sortedChunkTable_t
MEMORY MANAGEMENT STRUCTURE-III (for binary search for memory chunk) table of memory chunks sorted in...
Definition: _xmpco_alloc.h:121
XMPCO_this_image_coarray
void XMPCO_this_image_coarray(CoarrayInfo_t *cinfo, int corank, int image[])
Definition: xmpco_lib.c:17
xmp_data_struct.h
_XMPCO_get_baseAddrOfCoarray
char * _XMPCO_get_baseAddrOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:706
XMPCO_epilog
void XMPCO_epilog(ResourceSet_t **rset)
Definition: xmpco_alloc.c:550
_XMP_coarray_malloc
void _XMP_coarray_malloc(void **, void *)
Create coarray object and allocate coarray.
Definition: xmp_coarray.c:333
_XMPCO_nowInTask
int _XMPCO_nowInTask(void)
Definition: xmpco_alloc.c:1420
xmp_coarray_garbage_bytes
size_t xmp_coarray_garbage_bytes(void)
Definition: xmpco_alloc.c:137
XMPCO_regmem_coarray
CoarrayInfo_t * XMPCO_regmem_coarray(void *var, int count, size_t element, ResourceSet_t *rset)
Definition: xmpco_alloc.c:189
XMPCO_free_coarray
void XMPCO_free_coarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:351
_XMPCO_get_desc_fromLocalAddr
void * _XMPCO_get_desc_fromLocalAddr(char *localAddr, char **orgAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:784
_XMPCO_get_isSafeBufferMode
BOOL _XMPCO_get_isSafeBufferMode(void)
Definition: xmpco_params.c:87
XMPCO_GET_arrayStmt
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
XMPCO_deregmem_coarray
void XMPCO_deregmem_coarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:374
SyncMode
enum _SyncMode SyncMode
Definition: xmpco_internal.h:29
XMPCO_malloc_pool
void XMPCO_malloc_pool(void)
Definition: xmpco_alloc.c:455
_XMP_coarray_contiguous_put
void _XMP_coarray_contiguous_put(const int, void *, const void *, const long, const long, const long, const long)
xmpco_params.h
_XMP_coarray_rdma_array_set_1
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
_XMPCO_set_initialNumImages
void _XMPCO_set_initialNumImages(void)
Definition: xmpco_lib.c:118
_XMP_coarray_malloc_image_info_1
void _XMP_coarray_malloc_image_info_1()
Set 1-dim image information.
Definition: xmp_coarray.c:155
_XMPCO_debugPrint
void _XMPCO_debugPrint(char *format,...)
Definition: xmpco_msg.c:20
xmp_sync_memory
void xmp_sync_memory(const int *status)
Execute sync_memory()
Definition: xmp_coarray.c:1405
_XMPCO_set_isSyncPutMode
void _XMPCO_set_isSyncPutMode(BOOL sw)
Definition: xmpco_params.c:25
xmp_sync_images_all
void xmp_sync_images_all(int *status)
Execute sync_images_all()
Definition: xmp_coarray.c:1463
_XMPCO_get_infoOfCtrlData
void * _XMPCO_get_infoOfCtrlData(char **baseAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:759
_XMPCO_get_currentComm
MPI_Comm _XMPCO_get_currentComm(void)
Definition: xmpco_lib.c:163
XMPCO_GET_scalarExpr
void XMPCO_GET_scalarExpr(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *result)
Definition: xmpco_get_expr.c:52
syncRUNTIME
@ syncRUNTIME
Definition: xmpco_internal.h:27
xmp_coarray_malloc_bytes
size_t xmp_coarray_malloc_bytes(void)
Definition: xmpco_alloc.c:107
_XMPCO_get_nameOfCoarray
char * _XMPCO_get_nameOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:701
_XMP_coarray_malloc_info_1
void _XMP_coarray_malloc_info_1(const long, const size_t)
Set 1-dim coarray information.
Definition: xmp_coarray.c:31
_XMPCO_checkIfInTask
void _XMPCO_checkIfInTask(char *msgopt)
Definition: xmpco_alloc.c:1425
_XMPCO_get_initial_image_withDescPtr
int _XMPCO_get_initial_image_withDescPtr(int image, CoarrayInfo_t *descPtr)
Definition: xmpco_lib.c:246
_XMPCO_coarrayInit_get
void _XMPCO_coarrayInit_get(void)
Definition: xmpco_get_expr.c:39
xmp_sync_images
void xmp_sync_images(const int num, int *image_set, int *status)
Execute sync_images()
Definition: xmp_coarray.c:1439
XMPCO_PUT_scalarStmt
void XMPCO_PUT_scalarStmt(CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *rhs, SyncMode sync_mode)
Definition: xmpco_put.c:118
_XMPCO_set_poolThreshold
void _XMPCO_set_poolThreshold(unsigned size)
Definition: xmpco_params.c:28
_XMPCO_coarrayInit_getsub
void _XMPCO_coarrayInit_getsub(void)
Definition: xmpco_get_stmt.c:77
_XMPCO_get_isEagerCommMode
BOOL _XMPCO_get_isEagerCommMode(void)
Definition: xmpco_params.c:89
_XMPCO_get_infoOfLocalBuf
void * _XMPCO_get_infoOfLocalBuf(char **baseAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:770
_XMPCO_get_comm_of_nodes
MPI_Comm _XMPCO_get_comm_of_nodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:83
_XMPCO_get_offsetInMemoryChunk
size_t _XMPCO_get_offsetInMemoryChunk(CoarrayInfo_t *cinfo, char *addr)
Definition: xmpco_alloc.c:740
_XMPCO_consume_imageDirNodes
_XMP_nodes_t * _XMPCO_consume_imageDirNodes(void)
Definition: xmpco_lib.c:292
XMPCO_PUT_spread
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
XMPCO_malloc_staticCoarray
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
_XMPCO_consume_comm_current
MPI_Comm _XMPCO_consume_comm_current(void)
Definition: xmpco_lib.c:315
syncBLOCK
@ syncBLOCK
Definition: xmpco_internal.h:25
_XMPCO_clean_imageDirNodes
void _XMPCO_clean_imageDirNodes(void)
Definition: xmpco_lib.c:272
xmp_sync_all
void xmp_sync_all(const int *status)
Execute sync_all()
Definition: xmp_coarray.c:1423
_XMPCO_set_initialThisImage
void _XMPCO_set_initialThisImage(void)
Definition: xmpco_lib.c:107
_XMPCO_set_localBufSize
void _XMPCO_set_localBufSize(unsigned size)
Definition: xmpco_params.c:37
_XMPCO_set_codim_withSize
void _XMPCO_set_codim_withSize(CoarrayInfo_t *cp, int dim, int lb, int size)
Definition: xmpco_alloc.c:645
XMPCO_prolog
void XMPCO_prolog(ResourceSet_t **rset, int namelen, char *name)
Definition: xmpco_alloc.c:541
_XMP_coarray_get
void _XMP_coarray_get(void *, void *, void *)
Definition: xmp_coarray.c:1223
XMPCO_GET_arrayExpr
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
_XMPCO_get_imageDirNodes
_XMP_nodes_t * _XMPCO_get_imageDirNodes(void)
Definition: xmpco_lib.c:286
_XMPCO_get_initialNumImages
int _XMPCO_get_initialNumImages(void)
Definition: xmpco_lib.c:133
_XMPCO_set_isMsgMode
void _XMPCO_set_isMsgMode(BOOL sw)
Definition: xmpco_params.c:48
_XMPCO_set_varname
void _XMPCO_set_varname(CoarrayInfo_t *cp, int namelen, char *name)
Definition: xmpco_alloc.c:673
XMPCO_count_size
void XMPCO_count_size(int count, size_t element)
Definition: xmpco_alloc.c:506
_XMPCO_coarrayInit_put
void _XMPCO_coarrayInit_put(void)
Definition: xmpco_put.c:105
XMPCO_sync_all_auto
void XMPCO_sync_all_auto(void)
Definition: xmpco_sync.c:34
XMPCO_this_image_coarray_dim
int XMPCO_this_image_coarray_dim(CoarrayInfo_t *cinfo, int corank, int dim)
Definition: xmpco_lib.c:45
_XMPCO_get_comm_current
MPI_Comm _XMPCO_get_comm_current(void)
Definition: xmpco_lib.c:304
BOOL
#define BOOL
Definition: xmpco_internal.h:14
_XMPCO_get_isSyncPutMode
BOOL _XMPCO_get_isSyncPutMode(void)
Definition: xmpco_params.c:88
_XMPCO_get_sizeOfMemoryChunk
size_t _XMPCO_get_sizeOfMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:735
_XMPCO_set_nodes
CoarrayInfo_t * _XMPCO_set_nodes(CoarrayInfo_t *cinfo, _XMP_nodes_t *nodes)
Definition: xmpco_alloc.c:681
XMPCO_regmem_staticCoarray
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
XMPCO_sync_all_withComm
void XMPCO_sync_all_withComm(MPI_Comm comm)
Definition: xmpco_sync.c:54
_XMPCO_get_initialThisImage
int _XMPCO_get_initialThisImage(void)
Definition: xmpco_lib.c:128
_XMPCO_fatal
void _XMPCO_fatal(char *format,...)
Definition: xmpco_msg.c:4
_XMPCO_set_isMsgMode_quietly
void _XMPCO_set_isMsgMode_quietly(BOOL sw)
Definition: xmpco_params.c:68
XMPCO_find_descptr
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
_XMPCO_transImage_current2initial
int _XMPCO_transImage_current2initial(int image)
Definition: xmpco_lib.c:222
_XMP_coarray_contiguous_get
void _XMP_coarray_contiguous_get(const int, void *, const void *, const long, const long, const long, const long)
_XMPCO_num_images_onNodes
int _XMPCO_num_images_onNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:90
_memoryChunk_t
structure for each malloc/free call Every memory chunk is linked both:
Definition: _xmpco_alloc.h:76
_XMPCO_set_isEagerCommMode
void _XMPCO_set_isEagerCommMode(BOOL sw)
Definition: xmpco_params.c:26
_XMPCO_get_offsetInCoarray
size_t _XMPCO_get_offsetInCoarray(CoarrayInfo_t *cinfo, char *addr)
Definition: xmpco_alloc.c:716
_XMP_coarray_rdma_image_set_1
void _XMP_coarray_rdma_image_set_1(const int)
Set 1-dim image information.
Definition: xmp_coarray.c:942
_XMPCO_set_corank
void _XMPCO_set_corank(CoarrayInfo_t *cp, int corank)
Definition: xmpco_alloc.c:606
_XMPCO_isAddrInMemoryChunk
BOOL _XMPCO_isAddrInMemoryChunk(char *localAddr, CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:747
_XMPCO_get_currentNumImages
int _XMPCO_get_currentNumImages(void)
Definition: xmpco_lib.c:143
_XMPCO_get_descForMemoryChunk
void * _XMPCO_get_descForMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:725
_XMPCO_this_image_onNodes
int _XMPCO_this_image_onNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:95
_XMPCO_set_isSafeBufferMode
void _XMPCO_set_isSafeBufferMode(BOOL sw)
Definition: xmpco_params.c:24
_memoryChunkOrder_t
MEMORY MANAGEMENT STRUCTURE-II (for dynamic ALLOCATE/DEALLOCATE stmts.
Definition: _xmpco_alloc.h:111
_XMPCO_get_currentThisImage
int _XMPCO_get_currentThisImage(void)
Definition: xmpco_lib.c:153
xmp_coarray_allocated_bytes
size_t xmp_coarray_allocated_bytes(void)
Definition: xmpco_alloc.c:112
_XMPCO_get_localBufSize
size_t _XMPCO_get_localBufSize(void)
Definition: xmpco_params.c:84
xmp_internal.h
_XMP_coarray_put
void _XMP_coarray_put(void *, void *, void *)
Definition: xmp_coarray.c:1160
XMPCO_PUT_arrayStmt
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
_SyncMode
_SyncMode
Definition: xmpco_internal.h:23
_XMP_coarray_regmem
void _XMP_coarray_regmem(void **, void *)
Create coarray object but not allocate coarray.
Definition: xmp_coarray.c:359
_XMPCO_get_orgAddrOfMemoryChunk
char * _XMPCO_get_orgAddrOfMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:730
_XMP_nodes_type
Definition: xmp_data_struct.h:40
_XMPCO_get_sizeOfCoarray
size_t _XMPCO_get_sizeOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:711
_XMP_coarray_rdma_coarray_set_1
void _XMP_coarray_rdma_coarray_set_1(const long, const long, const long)
Set transfer 1-dim coarray information.
Definition: xmp_coarray.c:434
syncATOMIC
@ syncATOMIC
Definition: xmpco_internal.h:26
_XMPCO_get_isMsgMode
BOOL _XMPCO_get_isMsgMode(void)
Definition: xmpco_params.c:86
_coarrayInfo_t
structure for each coarray variable One or more coarrays can be linked from a single memory chunk and...
Definition: _xmpco_alloc.h:92
_XMPCO_reset_isMsgMode
void _XMPCO_reset_isMsgMode(void)
Definition: xmpco_params.c:74
_sortedChunkTable_t::orgAddr
unsigned long orgAddr
Definition: _xmpco_alloc.h:122
_XMPCO_transImage_withComm
int _XMPCO_transImage_withComm(MPI_Comm comm1, int image1, MPI_Comm comm2)
Definition: xmpco_lib.c:190
_XMPCO_set_imageDirNodes
void _XMPCO_set_imageDirNodes(_XMP_nodes_t *nodes)
Definition: xmpco_lib.c:277
xmp_sync_image
void xmp_sync_image(int image, int *status)
Execute sync_image()
Definition: xmp_coarray.c:1455
_XMPCO_is_subset_exec
BOOL _XMPCO_is_subset_exec(void)
Definition: xmpco_lib.c:176
syncNONBLOCK
@ syncNONBLOCK
Definition: xmpco_internal.h:24
XMPCO_malloc_coarray
CoarrayInfo_t * XMPCO_malloc_coarray(char **addr, int count, size_t element, ResourceSet_t *rset)
Definition: xmpco_alloc.c:159
_XMPCO_set_codim_withBounds
void _XMPCO_set_codim_withBounds(CoarrayInfo_t *cp, int dim, int lb, int ub)
Definition: xmpco_alloc.c:618
XMPCO_sync_all
void XMPCO_sync_all(void)
Definition: xmpco_sync.c:11
_XMPCO_get_poolThreshold
unsigned _XMPCO_get_poolThreshold(void)
Definition: xmpco_params.c:83
_XMPCO_get_comm_fromCoarrayInfo
MPI_Comm _XMPCO_get_comm_fromCoarrayInfo(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:527