shmemx_put_nb

The nonblocking put routines provide a method for copying data
from a contiguous local data object to a data object on a specified PE.

Definitions

C11 Synopsis

void shmemx_put_nb(TYPE *dest, const TYPE *source, size_t nelems, int pe);
void shmemx_put_nb(shmem_ctx_t ctx, TYPE *dest, const TYPE *source, size_t nelems, int pe);

where TYPE is one of the standard RMA types specified by Table:1

C/C++ Synopsis

void shmemx_TYPENAME_put_nb(TYPE *dest, const TYPE *source, size_t nelems, int pe);
void shmemx_ctx_TYPENAME_put_nb(shmem_ctx_t ctx, TYPE *dest, const TYPE *source,
                                size_t nelems, int pe);

where TYPE is one of the standard RMA types and has a corresponding TYPENAME specified by Table:1

void shmemx_putSIZE_nb(void *dest, const void *source, size_t nelems, int pe);
void shmemx_ctx_putSIZE_nb(shmem_ctx_t ctx, void *dest, const void *source,
                           size_t nelems, int pe);

where SIZE is one of 8, 16, 32, 64, 128.

void shmemx_putmem_nb(void *dest, const void *source, size_t nelems, int pe);
void shmemx_ctx_putmem_nb(shmem_ctx_t ctx, void *dest, const void *source,
                          size_t nelems, int pe);

Datatype Reference Table

Table:1

|           TYPE          |      TYPENAME       |
|-------------------------|---------------------|
|   float                 |     float           |
|   double                |     double          |
|   long double           |     longdouble      |
|   char                  |     char            |
|   signed char           |     schar           |
|   short                 |     short           |
|   int                   |     int             |
|   long                  |     long            |
|   long long             |     longlong        |
|   unsigned char         |     uchar           |
|   unsigned short        |     ushort          |
|   unsigned int          |     uint            |
|   unsigned long         |     ulong           |
|   unsigned long long    |     ulonglong       |
|   int8_t                |     int8            |
|   int16_t               |     int16           |
|   int32_t               |     int32           |
|   int64_t               |     int64           |
|   uint8_t               |     uint8           |
|   uint16_t              |     uint16          |
|   uint32_t              |     uint32          |
|   uint64_t              |     uint64          |
|   size_t                |     size            |
|   ptrdiff_t             |     ptrdiff         |

Arguments

ctx     The context on which to perform the operation. When this argument is
        not provided, the operation is performed on SHMEM_CTX_DEFAULT.
dest    Data object to be updated on the remote PE. This data object must be
        remotely accessible.
source  Data object containing the data to be copied.
nelems  Number of elements in the dest and source arrays. nelems must be of
        type size_t for C. When using Fortran, it must be a constant,
        variable, or array element of default integer type.
pe      PE number of the remote PE. pe must be of type integer. When using
        Fortran, it must be a constant, variable, or array element of default
        integer type.

Description

The routines return after posting the operation.  The operation is considered
complete after a subsequent call to shmem_quiet. At the completion of
shmem_quiet, the data has been copied into the dest array on the destination
PE. The delivery of data words into the data object on the destination PE
may occur in any order. Furthermore, two successive put routines may deliver
data out of order unless a call to shmem_fence is introduced between the two
calls.

Return Values

None.

Notes

None.