Copyright
- Provided by: openmpi-doc (Version: 5.0.10-1)
- Source: openmpi
- Report a bug
shmem_putmem_nbi(3), shmem_char_put_nbi <#shmem-char-put-nbi>(3), shmem_short_put_nbi <#shmem-short-put-nbi>(3), shmem_int_put_nbi <#shmem-int-put-nbi>(3), shmem_long_put_nbi <#shmem-long-put-nbi>(3), shmem_longlong_put_nbi <#shmem-longlong-put-nbi>(3), shmem_float_put_nbi <#shmem-float-put-nbi>(3), shmem_double_put_nbi <#shmem-double-put-nbi>(3), shmem_longdouble_put_nbi <#shmem-longdouble-put-nbi>(3), shmem_put8_nbi <#shmem-put8-nbi>(3), shmem_put16_nbi <#shmem-put16-nbi>(3), shmem_put32_nbi <#shmem-put32-nbi>(3), shmem_put64_nbi <#shmem-put64-nbi>(3), shmem_put128_nbi <#shmem-put128-nbi>(3), - The nonblocking put routines provide a method for copying data from a contiguous local data object to a data object on a specified PE.
The routines return after posting the operation. The operation is considered complete after a subsequent call to shmem_quiet <#shmem-quiet>. At the completion of shmem_quiet <#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 <#shmem-fence> is introduced between the two calls.
The arguments are as follows:
If you are using Fortran, data types must be of default size. For example, a real variable must be declared as REAL, REAL*4, or REAL(KIND=4).
See intro_shmem(3) for a definition of the term remotely accessible.
Consider this simple example for C.
#include <stdio.h>
#include <mpp/shmem.h>
main()
{
long source[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
static long target[10];
shmem_init();
if (shmem_my_pe() == 0) {
/* put 10 words into target on PE 1 */
shmem_long_put_nbi(target, source, 10, 1);
shmem_quiet();
}
shmem_barrier_all(); /* sync sender and receiver */
if (shmem_my_pe() == 1)
shmem_udcflush(); /* not required on Altix systems */
printf("target[0] on PE %d is %d\n", shmem_my_pe(), target[0]);
}
See also:
2003-2026, The Open MPI Community