libxmp/libxmpf in Omni Compiler  1.3.4
_xmpco_putget.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void _XMPCO_getVector_DMA (void *descPtr, char *baseAddr, int bytes, int coindex, void *descDMA, size_t offsetDMA, char *nameDMA)
 
void _XMPCO_getVector_buffer (void *descPtr, char *baseAddr, int bytesRU, int coindex, char *result, int bytes)
 
void _XMP_atomic_define_1 (void *, size_t, int, int, void *, size_t, size_t)
 

Function Documentation

◆ _XMP_atomic_define_1()

void _XMP_atomic_define_1 ( void *  ,
size_t  ,
int  ,
int  ,
void *  ,
size_t  ,
size_t   
)
6351 {
6352 #if defined(_XMP_GASNET) || defined(_XMP_FJRDMA) || defined(_XMP_MPI3_ONESIDED) || defined(_XMP_UTOFU)
6353  _XMP_coarray_t* c = (_XMP_coarray_t*)dst_desc;
6354 #endif
6355 
6356 #ifdef _XMP_GASNET
6357  _XMP_gasnet_atomic_define(image0, c, dst_offset, value, src_desc, src_offset, elmt_size);
6358 #elif _XMP_FJRDMA
6359  _XMP_fjrdma_atomic_define(image0, c, dst_offset, value, src_desc, src_offset, elmt_size);
6360 #elif _XMP_UTOFU
6361  _XMP_utofu_atomic_define(image0, c, dst_offset, value, elmt_size);
6362 #elif _XMP_MPI3_ONESIDED
6363  _XMP_mpi_atomic_define(image0, c, dst_offset, value, elmt_size);
6364 #endif
6365 }

◆ _XMPCO_getVector_buffer()

void _XMPCO_getVector_buffer ( void *  descPtr,
char *  baseAddr,
int  bytesRU,
int  coindex,
char *  result,
int  bytes 
)
344 {
345  size_t rest1, rest2, bufSize;
346  char *src, *dst;
347 
348  src = baseAddr;
349  dst = result;
350  bufSize = _XMPCO_get_localBufSize();
351 
352  // communication for every buffer size
353  for (rest1 = bytesRU, rest2 = bytes;
354  rest1 > bufSize;
355  rest1 -= bufSize, rest2 -=bufSize) {
356  _XMPCO_getVector_DMA(descPtr, src, bufSize, coindex,
358 
359  _XMPCO_debugPrint("=e=MEMCPY %d bytes, cont\'d\n"
360  " from: \'%s\'\n"
361  " to : addr=%p\n",
362  bufSize,
364  dst);
365  (void)memcpy(dst, _localBuf_baseAddr, bufSize);
366 
367  src += bufSize;
368  dst += bufSize;
369  }
370 
371  _XMPCO_getVector_DMA(descPtr, src, rest1, coindex,
373 
374  _XMPCO_debugPrint("=e=MEMCPY %d bytes, final\n"
375  " from: \'%s\'\n"
376  " to : addr=%p\n",
377  rest2,
379  dst);
380  (void)memcpy(dst, _localBuf_baseAddr, rest2);
381 }
Here is the call graph for this function:

◆ _XMPCO_getVector_DMA()

void _XMPCO_getVector_DMA ( void *  descPtr,
char *  baseAddr,
int  bytes,
int  coindex,
void *  descDMA,
size_t  offsetDMA,
char *  nameDMA 
)
323 {
324  char* desc = _XMPCO_get_descForMemoryChunk(descPtr);
325  size_t offset = _XMPCO_get_offsetInMemoryChunk(descPtr, baseAddr);
326 
327  _XMPCO_debugPrint("=e=GET_VECTOR RDMA-DMA %d bytes\n"
328  " from: remote[%d] \'%s\' + %zd\n"
329  " to : %s + %zd\n",
330  bytes,
331  coindex, _XMPCO_get_nameOfCoarray(descPtr), offset,
332  nameDMA, offsetDMA);
333 
334  // ACTION
335  _XMP_coarray_contiguous_get(coindex-1,
336  descDMA, desc,
337  offsetDMA, offset,
338  bytes, bytes);
339 }
Here is the call graph for this function:
Here is the caller graph for this function:
_XMPCO_getVector_DMA
void _XMPCO_getVector_DMA(void *descPtr, char *baseAddr, int bytes, int coindex, void *descDMA, size_t offsetDMA, char *nameDMA)
Definition: xmpco_get_expr.c:321
_XMP_gasnet_atomic_define
void _XMP_gasnet_atomic_define(int target_rank, _XMP_coarray_t *dst_desc, size_t dst_offset, int value, _XMP_coarray_t *src_desc, size_t src_offset, size_t elmt_size)
Definition: xmp_intrinsic_gasnet.c:57
_XMPCO_debugPrint
void _XMPCO_debugPrint(char *format,...)
Definition: xmpco_msg.c:20
_localBuf_name
char * _localBuf_name
Definition: xmpco_get_stmt.c:69
_XMPCO_get_nameOfCoarray
char * _XMPCO_get_nameOfCoarray(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:701
_localBuf_desc
void * _localBuf_desc
Definition: xmpco_get_stmt.c:65
_XMPCO_get_offsetInMemoryChunk
size_t _XMPCO_get_offsetInMemoryChunk(CoarrayInfo_t *cinfo, char *addr)
Definition: xmpco_alloc.c:740
_localBuf_offset
size_t _localBuf_offset
Definition: xmpco_get_stmt.c:66
_XMP_coarray_contiguous_get
void _XMP_coarray_contiguous_get(const int, void *, const void *, const long, const long, const long, const long)
xmp_coarray
Definition: xmp_data_struct.h:328
_XMP_utofu_atomic_define
void _XMP_utofu_atomic_define(int target_rank, _XMP_coarray_t *dst_desc, size_t dst_offset, int value, size_t elmt_size)
Definition: xmp_intrinsic_utofu.c:32
_XMPCO_get_descForMemoryChunk
void * _XMPCO_get_descForMemoryChunk(CoarrayInfo_t *cinfo)
Definition: xmpco_alloc.c:725
_XMPCO_get_localBufSize
size_t _XMPCO_get_localBufSize(void)
Definition: xmpco_params.c:84
_XMP_fjrdma_atomic_define
void _XMP_fjrdma_atomic_define(int target_rank, _XMP_coarray_t *dst_desc, size_t dst_offset, int value, _XMP_coarray_t *src_desc, size_t src_offset, size_t elmt_size)
Definition: xmp_intrinsic_fjrdma.c:3
_XMP_mpi_atomic_define
void _XMP_mpi_atomic_define(int target_rank, _XMP_coarray_t *c, size_t offset, int value, size_t elmt_size)
Definition: xmp_intrinsic_mpi.c:3
_localBuf_baseAddr
char * _localBuf_baseAddr
Definition: xmpco_get_stmt.c:67