From e59bf31d6bb93f54170b2991b3603576be1aaff3 Mon Sep 17 00:00:00 2001 From: Igor Ivanov Date: Fri, 11 Mar 2016 16:56:47 +0200 Subject: [PATCH] oshmem: Align OSHMEM API with spec v1.3 (Add mans for nonblocking put/get Fortran functions) --- oshmem/shmem/man/man3/Makefile.extra | 33 +++- oshmem/shmem/man/man3/shmem_char_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_char_put_nbi.3in | 1 + .../shmem/man/man3/shmem_double_get_nbi.3in | 1 + .../shmem/man/man3/shmem_double_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_float_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_float_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get128_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get16_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get32_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get64_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get8_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_getmem_nbi.3in | 168 +++++++++++++++++ oshmem/shmem/man/man3/shmem_int_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_int_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_long_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_long_put_nbi.3in | 1 + .../man/man3/shmem_longdouble_get_nbi.3in | 1 + .../man/man3/shmem_longdouble_put_nbi.3in | 1 + .../shmem/man/man3/shmem_longlong_get_nbi.3in | 1 + .../shmem/man/man3/shmem_longlong_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put128_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put16_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put32_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put64_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put8_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_putmem_nbi.3in | 171 ++++++++++++++++++ oshmem/shmem/man/man3/shmem_short_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_short_put_nbi.3in | 1 + 29 files changed, 397 insertions(+), 1 deletion(-) create mode 100644 oshmem/shmem/man/man3/shmem_char_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get128_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get16_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get32_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get64_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get8_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_getmem_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put128_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put16_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put32_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put64_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put8_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_putmem_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_put_nbi.3in diff --git a/oshmem/shmem/man/man3/Makefile.extra b/oshmem/shmem/man/man3/Makefile.extra index fbb23826d7..0eb41f3621 100644 --- a/oshmem/shmem/man/man3/Makefile.extra +++ b/oshmem/shmem/man/man3/Makefile.extra @@ -187,7 +187,38 @@ shmem_api_man_pages = \ shmem/man/man3/shmem_clear_cache_line_inv.3 \ shmem/man/man3/shmem_info_get_name.3 \ shmem/man/man3/shmem_info_get_version.3 \ - shmem/man/man3/shmem_global_exit.3 + shmem/man/man3/shmem_global_exit.3 \ +\ + shmem/man/man3/shmem_getmem_nbi.3 \ + shmem/man/man3/shmem_char_get_nbi.3 \ + shmem/man/man3/shmem_short_get_nbi.3 \ + shmem/man/man3/shmem_int_get_nbi.3 \ + shmem/man/man3/shmem_long_get_nbi.3 \ + shmem/man/man3/shmem_longlong_get_nbi.3 \ + shmem/man/man3/shmem_float_get_nbi.3 \ + shmem/man/man3/shmem_double_get_nbi.3 \ + shmem/man/man3/shmem_longdouble_get_nbi.3 \ + shmem/man/man3/shmem_get8_nbi.3 \ + shmem/man/man3/shmem_get16_nbi.3 \ + shmem/man/man3/shmem_get32_nbi.3 \ + shmem/man/man3/shmem_get64_nbi.3 \ + shmem/man/man3/shmem_get128_nbi.3 \ +\ + shmem/man/man3/shmem_putmem_nbi.3 \ + shmem/man/man3/shmem_char_put_nbi.3 \ + shmem/man/man3/shmem_short_put_nbi.3 \ + shmem/man/man3/shmem_int_put_nbi.3 \ + shmem/man/man3/shmem_long_put_nbi.3 \ + shmem/man/man3/shmem_longlong_put_nbi.3 \ + shmem/man/man3/shmem_float_put_nbi.3 \ + shmem/man/man3/shmem_double_put_nbi.3 \ + shmem/man/man3/shmem_longdouble_put_nbi.3 \ + shmem/man/man3/shmem_put8_nbi.3 \ + shmem/man/man3/shmem_put16_nbi.3 \ + shmem/man/man3/shmem_put32_nbi.3 \ + shmem/man/man3/shmem_put64_nbi.3 \ + shmem/man/man3/shmem_put128_nbi.3 + if PROJECT_OSHMEM nodist_man_MANS += $(shmem_api_man_pages) diff --git a/oshmem/shmem/man/man3/shmem_char_get_nbi.3in b/oshmem/shmem/man/man3/shmem_char_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_char_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_char_put_nbi.3in b/oshmem/shmem/man/man3/shmem_char_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_char_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_double_get_nbi.3in b/oshmem/shmem/man/man3/shmem_double_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_double_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_double_put_nbi.3in b/oshmem/shmem/man/man3/shmem_double_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_double_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_float_get_nbi.3in b/oshmem/shmem/man/man3/shmem_float_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_float_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_float_put_nbi.3in b/oshmem/shmem/man/man3/shmem_float_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_float_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_get128_nbi.3in b/oshmem/shmem/man/man3/shmem_get128_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_get128_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_get16_nbi.3in b/oshmem/shmem/man/man3/shmem_get16_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_get16_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_get32_nbi.3in b/oshmem/shmem/man/man3/shmem_get32_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_get32_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_get64_nbi.3in b/oshmem/shmem/man/man3/shmem_get64_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_get64_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_get8_nbi.3in b/oshmem/shmem/man/man3/shmem_get8_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_get8_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_getmem_nbi.3in b/oshmem/shmem/man/man3/shmem_getmem_nbi.3in new file mode 100644 index 0000000000..702e1db3de --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_getmem_nbi.3in @@ -0,0 +1,168 @@ +.\" -*- nroff -*- +.\" Copyright (c) 2016 Mellanox Technologies, Inc. +.\" $COPYRIGHT$ +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "SHMEM\\_GET\\_NBI" "3" "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#" +.SH NAME + +\fIshmem_getmem_nbi\fP(3), +\fIshmem_char_get_nbi\fP(3), +\fIshmem_short_get_nbi\fP(3), +\fIshmem_int_get_nbi\fP(3), +\fIshmem_long_get_nbi\fP(3), +\fIshmem_longlong_get_nbi\fP(3), +\fIshmem_float_get_nbi\fP(3), +\fIshmem_double_get_nbi\fP(3), +\fIshmem_longdouble_get_nbi\fP(3), +\fIshmem_get8_nbi\fP(3), +\fIshmem_get16_nbi\fP(3), +\fIshmem_get32_nbi\fP(3), +\fIshmem_get64_nbi\fP(3), +\fIshmem_get128_nbi\fP(3), +\- The nonblocking get routines provide a method for copying data from a contiguous remote data object on the specified PE to the local data object. +.SH SYNOPSIS + +C or C++: +.Vb +#include + +void shmem_getmem_nbi(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_char_get(char *dest, const char *source, + size_t nelems, int pe); + +void shmem_short_get(short *dest, const short *source, + size_t nelems, int pe); + +void shmem_int_get(int *dest, const int *source, + size_t nelems, int pe); + +void shmem_long_get(long *dest, const long *source, + size_t nelems, int pe); + +void shmem_longlong_get(long long *dest, const long long *source, + size_t nelems, int pe); + +void shmem_float_get(float *dest, const float *source, + size_t nelems, int pe); + +void shmem_double_get(double *dest, const double *source, + size_t nelems, int pe); + +void shmem_longdouble_get(long double *dest, const long double *source, + size_t nelems, int pe); + +void shmem_get8(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_get16(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_get32(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_get64(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_get128(void *dest, const void *source, + size_t nelems, int pe); + +.Ve +Fortran: +.Vb +INCLUDE "mpp/shmem.fh" + +INTEGER nelems, pe + +CALL SHMEM_GETMEM_NBI(dest, source, nelems, pe) + +CALL SHMEM_CHARACTER_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_COMPLEX_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_DOUBLE_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_INTEGER_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_LOGICAL_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_REAL_GET_NBI(dest, source, nelems, pe) + +CALL SHMEM_GET4_NBI(dest, source, nelems, pe) + +CALL SHMEM_GET8_NBI(dest, source, nelems, pe) + +CALL SHMEM_GET32_NBI(dest, source, nelems, pe) + +CALL SHMEM_GET64_NBI(dest, source, nelems, pe) + +CALL SHMEM_GET128_NBI(dest, source, nelems, pe) + +.Ve +.SH DESCRIPTION + +The get routines provide a method for copying a contiguous symmetric data +object from a different PE to a contiguous data object on the local PE. +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 delivered to the dest array on the local PE. +.PP +The arguments are as follows: +.TP +dest +Local data object to be updated. +.TP +source +Data object on the PE identified by pe that contains the data to be copied. This +data object must be remotely accessible. +.TP +nelems +Number of elements in the target and source arrays. len must be of type integer. If +you are using Fortran, it must be a constant, variable, or array element of default +integer type. +.TP +pe +PE number of the remote PE. pe must be of type integer. If you are using Fortran, it +must be a constant, variable, or array element of default integer type. +.PP +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). +.SH NOTES + +See \fIintro_shmem\fP(3) +for a definition of the term remotely accessible. +.SH EXAMPLES + +Consider this simple example for Fortran. +.Vb +PROGRAM REDUCTION + REAL VALUES, SUM + COMMON /C/ VALUES + REAL WORK + + CALL START_PES(0) ! ALLOW ANY NUMBER OF PES + VALUES = MY_PE() ! INITIALIZE IT TO SOMETHING + CALL SHMEM_BARRIER_ALL + SUM = 0.0 + DO I = 0,NUM_PES()\-1 + CALL SHMEM_REAL_GET_NBI(WORK, VALUES, 1, I) + CALL SHMEM_QUIET ! wait for delivery + SUM = SUM + WORK + ENDDO + PRINT *, 'PE ', MY_PE(), ' COMPUTED SUM=', SUM + CALL SHMEM_BARRIER_ALL +END +.Ve +.SH SEE ALSO + +\fIintro_shmem\fP(3), +\fIshmem_quiet\fP(3) diff --git a/oshmem/shmem/man/man3/shmem_int_get_nbi.3in b/oshmem/shmem/man/man3/shmem_int_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_int_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_int_put_nbi.3in b/oshmem/shmem/man/man3/shmem_int_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_int_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_long_get_nbi.3in b/oshmem/shmem/man/man3/shmem_long_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_long_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_long_put_nbi.3in b/oshmem/shmem/man/man3/shmem_long_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_long_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_longdouble_get_nbi.3in b/oshmem/shmem/man/man3/shmem_longdouble_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_longdouble_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_longdouble_put_nbi.3in b/oshmem/shmem/man/man3/shmem_longdouble_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_longdouble_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_longlong_get_nbi.3in b/oshmem/shmem/man/man3/shmem_longlong_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_longlong_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_longlong_put_nbi.3in b/oshmem/shmem/man/man3/shmem_longlong_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_longlong_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_put128_nbi.3in b/oshmem/shmem/man/man3/shmem_put128_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_put128_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_put16_nbi.3in b/oshmem/shmem/man/man3/shmem_put16_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_put16_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_put32_nbi.3in b/oshmem/shmem/man/man3/shmem_put32_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_put32_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_put64_nbi.3in b/oshmem/shmem/man/man3/shmem_put64_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_put64_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_put8_nbi.3in b/oshmem/shmem/man/man3/shmem_put8_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_put8_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_putmem_nbi.3in b/oshmem/shmem/man/man3/shmem_putmem_nbi.3in new file mode 100644 index 0000000000..f987e670c7 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_putmem_nbi.3in @@ -0,0 +1,171 @@ +.\" -*- nroff -*- +.\" Copyright (c) 2016 Mellanox Technologies, Inc. +.\" $COPYRIGHT$ +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "SHMEM\\_PUT\\_NBI" "3" "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#" +.SH NAME + +\fIshmem_putmem_nbi\fP(3), +\fIshmem_char_put_nbi\fP(3), +\fIshmem_short_put_nbi\fP(3), +\fIshmem_int_put_nbi\fP(3), +\fIshmem_long_put_nbi\fP(3), +\fIshmem_longlong_put_nbi\fP(3), +\fIshmem_float_put_nbi\fP(3), +\fIshmem_double_put_nbi\fP(3), +\fIshmem_longdouble_put_nbi\fP(3), +\fIshmem_put8_nbi\fP(3), +\fIshmem_put16_nbi\fP(3), +\fIshmem_put32_nbi\fP(3), +\fIshmem_put64_nbi\fP(3), +\fIshmem_put128_nbi\fP(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. +.SH SYNOPSIS + +C or C++: +.Vb +#include + +void shmem_putmem_nbi(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_char_put(char *dest, const char *source, + size_t nelems, int pe); + +void shmem_short_put(short *dest, const short *source, + size_t nelems, int pe); + +void shmem_int_put(int *dest, const int *source, + size_t nelems, int pe); + +void shmem_long_put(long *dest, const long *source, + size_t nelems, int pe); + +void shmem_longlong_put(long long *dest, const long long *source, + size_t nelems, int pe); + +void shmem_float_put(float *dest, const float *source, + size_t nelems, int pe); + +void shmem_double_put(double *dest, const double *source, + size_t nelems, int pe); + +void shmem_longdouble_put(long double *dest, const long double *source, + size_t nelems, int pe); + +void shmem_put8(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_put16(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_put32(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_put64(void *dest, const void *source, + size_t nelems, int pe); + +void shmem_put128(void *dest, const void *source, + size_t nelems, int pe); + +.Ve +Fortran: +.Vb +INCLUDE "mpp/shmem.fh" + +INTEGER nelems, pe + +CALL SHMEM_PUTMEM_NBI(dest, source, nelems, pe) + +CALL SHMEM_CHARACTER_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_COMPLEX_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_DOUBLE_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_INTEGER_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_LOGICAL_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_REAL_PUT_NBI(dest, source, nelems, pe) + +CALL SHMEM_PUT4_NBI(dest, source, nelems, pe) + +CALL SHMEM_PUT8_NBI(dest, source, nelems, pe) + +CALL SHMEM_PUT32_NBI(dest, source, nelems, pe) + +CALL SHMEM_PUT64_NBI(dest, source, nelems, pe) + +CALL SHMEM_PUT128_NBI(dest, source, nelems, pe) + +.Ve +.SH 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. +.PP +The arguments are as follows: +.TP +dest +Data object to be updated on the remote PE. This data object must be +remotely accessible. +.TP +source +Data object containing the data to be copied. +.TP +nelems +Number of elements in the dest and source arrays. nelems must be +of type size_t for C. If you are using Fortran, it must be a constant, +variable, or array element of default integer type. +.TP +pe +PE number of the remote PE. pe must be of type integer. If you are using Fortran, it +must be a constant, variable, or array element of default integer type. +.PP +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). +.SH NOTES + +See \fIintro_shmem\fP(3) +for a definition of the term remotely accessible. +.SH EXAMPLES + +Consider this simple example for Fortran. +.Vb +#include +#include + +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]); +} +.Ve +.SH SEE ALSO + +\fIintro_shmem\fP(3), +\fIshmem_quiet\fP(3) diff --git a/oshmem/shmem/man/man3/shmem_short_get_nbi.3in b/oshmem/shmem/man/man3/shmem_short_get_nbi.3in new file mode 100644 index 0000000000..50449e90a6 --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_short_get_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_getmem_nbi.3 diff --git a/oshmem/shmem/man/man3/shmem_short_put_nbi.3in b/oshmem/shmem/man/man3/shmem_short_put_nbi.3in new file mode 100644 index 0000000000..fb4ad1413b --- /dev/null +++ b/oshmem/shmem/man/man3/shmem_short_put_nbi.3in @@ -0,0 +1 @@ +.so man3/shmem_putmem_nbi.3