Skip to content

Commit e59bf31

Browse files
committed
oshmem: Align OSHMEM API with spec v1.3 (Add mans for nonblocking put/get Fortran functions)
1 parent 7013914 commit e59bf31

29 files changed

+397
-1
lines changed

oshmem/shmem/man/man3/Makefile.extra

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,38 @@ shmem_api_man_pages = \
187187
shmem/man/man3/shmem_clear_cache_line_inv.3 \
188188
shmem/man/man3/shmem_info_get_name.3 \
189189
shmem/man/man3/shmem_info_get_version.3 \
190-
shmem/man/man3/shmem_global_exit.3
190+
shmem/man/man3/shmem_global_exit.3 \
191+
\
192+
shmem/man/man3/shmem_getmem_nbi.3 \
193+
shmem/man/man3/shmem_char_get_nbi.3 \
194+
shmem/man/man3/shmem_short_get_nbi.3 \
195+
shmem/man/man3/shmem_int_get_nbi.3 \
196+
shmem/man/man3/shmem_long_get_nbi.3 \
197+
shmem/man/man3/shmem_longlong_get_nbi.3 \
198+
shmem/man/man3/shmem_float_get_nbi.3 \
199+
shmem/man/man3/shmem_double_get_nbi.3 \
200+
shmem/man/man3/shmem_longdouble_get_nbi.3 \
201+
shmem/man/man3/shmem_get8_nbi.3 \
202+
shmem/man/man3/shmem_get16_nbi.3 \
203+
shmem/man/man3/shmem_get32_nbi.3 \
204+
shmem/man/man3/shmem_get64_nbi.3 \
205+
shmem/man/man3/shmem_get128_nbi.3 \
206+
\
207+
shmem/man/man3/shmem_putmem_nbi.3 \
208+
shmem/man/man3/shmem_char_put_nbi.3 \
209+
shmem/man/man3/shmem_short_put_nbi.3 \
210+
shmem/man/man3/shmem_int_put_nbi.3 \
211+
shmem/man/man3/shmem_long_put_nbi.3 \
212+
shmem/man/man3/shmem_longlong_put_nbi.3 \
213+
shmem/man/man3/shmem_float_put_nbi.3 \
214+
shmem/man/man3/shmem_double_put_nbi.3 \
215+
shmem/man/man3/shmem_longdouble_put_nbi.3 \
216+
shmem/man/man3/shmem_put8_nbi.3 \
217+
shmem/man/man3/shmem_put16_nbi.3 \
218+
shmem/man/man3/shmem_put32_nbi.3 \
219+
shmem/man/man3/shmem_put64_nbi.3 \
220+
shmem/man/man3/shmem_put128_nbi.3
221+
191222

192223
if PROJECT_OSHMEM
193224
nodist_man_MANS += $(shmem_api_man_pages)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
.\" -*- nroff -*-
2+
.\" Copyright (c) 2016 Mellanox Technologies, Inc.
3+
.\" $COPYRIGHT$
4+
.de Vb
5+
.ft CW
6+
.nf
7+
..
8+
.de Ve
9+
.ft R
10+
11+
.fi
12+
..
13+
.TH "SHMEM\\_GET\\_NBI" "3" "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
14+
.SH NAME
15+
16+
\fIshmem_getmem_nbi\fP(3),
17+
\fIshmem_char_get_nbi\fP(3),
18+
\fIshmem_short_get_nbi\fP(3),
19+
\fIshmem_int_get_nbi\fP(3),
20+
\fIshmem_long_get_nbi\fP(3),
21+
\fIshmem_longlong_get_nbi\fP(3),
22+
\fIshmem_float_get_nbi\fP(3),
23+
\fIshmem_double_get_nbi\fP(3),
24+
\fIshmem_longdouble_get_nbi\fP(3),
25+
\fIshmem_get8_nbi\fP(3),
26+
\fIshmem_get16_nbi\fP(3),
27+
\fIshmem_get32_nbi\fP(3),
28+
\fIshmem_get64_nbi\fP(3),
29+
\fIshmem_get128_nbi\fP(3),
30+
\- 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.
31+
.SH SYNOPSIS
32+
33+
C or C++:
34+
.Vb
35+
#include <mpp/shmem.h>
36+
37+
void shmem_getmem_nbi(void *dest, const void *source,
38+
size_t nelems, int pe);
39+
40+
void shmem_char_get(char *dest, const char *source,
41+
size_t nelems, int pe);
42+
43+
void shmem_short_get(short *dest, const short *source,
44+
size_t nelems, int pe);
45+
46+
void shmem_int_get(int *dest, const int *source,
47+
size_t nelems, int pe);
48+
49+
void shmem_long_get(long *dest, const long *source,
50+
size_t nelems, int pe);
51+
52+
void shmem_longlong_get(long long *dest, const long long *source,
53+
size_t nelems, int pe);
54+
55+
void shmem_float_get(float *dest, const float *source,
56+
size_t nelems, int pe);
57+
58+
void shmem_double_get(double *dest, const double *source,
59+
size_t nelems, int pe);
60+
61+
void shmem_longdouble_get(long double *dest, const long double *source,
62+
size_t nelems, int pe);
63+
64+
void shmem_get8(void *dest, const void *source,
65+
size_t nelems, int pe);
66+
67+
void shmem_get16(void *dest, const void *source,
68+
size_t nelems, int pe);
69+
70+
void shmem_get32(void *dest, const void *source,
71+
size_t nelems, int pe);
72+
73+
void shmem_get64(void *dest, const void *source,
74+
size_t nelems, int pe);
75+
76+
void shmem_get128(void *dest, const void *source,
77+
size_t nelems, int pe);
78+
79+
.Ve
80+
Fortran:
81+
.Vb
82+
INCLUDE "mpp/shmem.fh"
83+
84+
INTEGER nelems, pe
85+
86+
CALL SHMEM_GETMEM_NBI(dest, source, nelems, pe)
87+
88+
CALL SHMEM_CHARACTER_GET_NBI(dest, source, nelems, pe)
89+
90+
CALL SHMEM_COMPLEX_GET_NBI(dest, source, nelems, pe)
91+
92+
CALL SHMEM_DOUBLE_GET_NBI(dest, source, nelems, pe)
93+
94+
CALL SHMEM_INTEGER_GET_NBI(dest, source, nelems, pe)
95+
96+
CALL SHMEM_LOGICAL_GET_NBI(dest, source, nelems, pe)
97+
98+
CALL SHMEM_REAL_GET_NBI(dest, source, nelems, pe)
99+
100+
CALL SHMEM_GET4_NBI(dest, source, nelems, pe)
101+
102+
CALL SHMEM_GET8_NBI(dest, source, nelems, pe)
103+
104+
CALL SHMEM_GET32_NBI(dest, source, nelems, pe)
105+
106+
CALL SHMEM_GET64_NBI(dest, source, nelems, pe)
107+
108+
CALL SHMEM_GET128_NBI(dest, source, nelems, pe)
109+
110+
.Ve
111+
.SH DESCRIPTION
112+
113+
The get routines provide a method for copying a contiguous symmetric data
114+
object from a different PE to a contiguous data object on the local PE.
115+
The routines return after posting the operation. The operation is
116+
considered complete after a subsequent call to shmem_quiet. At the completion
117+
of shmem_quiet, the data has been delivered to the dest array on the local PE.
118+
.PP
119+
The arguments are as follows:
120+
.TP
121+
dest
122+
Local data object to be updated.
123+
.TP
124+
source
125+
Data object on the PE identified by pe that contains the data to be copied. This
126+
data object must be remotely accessible.
127+
.TP
128+
nelems
129+
Number of elements in the target and source arrays. len must be of type integer. If
130+
you are using Fortran, it must be a constant, variable, or array element of default
131+
integer type.
132+
.TP
133+
pe
134+
PE number of the remote PE. pe must be of type integer. If you are using Fortran, it
135+
must be a constant, variable, or array element of default integer type.
136+
.PP
137+
If you are using Fortran, data types must be of default size. For example, a real variable must
138+
be declared as REAL, REAL*4, or REAL(KIND=4).
139+
.SH NOTES
140+
141+
See \fIintro_shmem\fP(3)
142+
for a definition of the term remotely accessible.
143+
.SH EXAMPLES
144+
145+
Consider this simple example for Fortran.
146+
.Vb
147+
PROGRAM REDUCTION
148+
REAL VALUES, SUM
149+
COMMON /C/ VALUES
150+
REAL WORK
151+
152+
CALL START_PES(0) ! ALLOW ANY NUMBER OF PES
153+
VALUES = MY_PE() ! INITIALIZE IT TO SOMETHING
154+
CALL SHMEM_BARRIER_ALL
155+
SUM = 0.0
156+
DO I = 0,NUM_PES()\-1
157+
CALL SHMEM_REAL_GET_NBI(WORK, VALUES, 1, I)
158+
CALL SHMEM_QUIET ! wait for delivery
159+
SUM = SUM + WORK
160+
ENDDO
161+
PRINT *, 'PE ', MY_PE(), ' COMPUTED SUM=', SUM
162+
CALL SHMEM_BARRIER_ALL
163+
END
164+
.Ve
165+
.SH SEE ALSO
166+
167+
\fIintro_shmem\fP(3),
168+
\fIshmem_quiet\fP(3)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_getmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.so man3/shmem_putmem_nbi.3

0 commit comments

Comments
 (0)