Skip to content

Commit 7013914

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

File tree

7 files changed

+674
-1
lines changed

7 files changed

+674
-1
lines changed

oshmem/shmem/fortran/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ liboshmem_fortran_la_SOURCES += \
6969
shmem_iput8_f.c \
7070
shmem_logical_iput_f.c \
7171
shmem_real_iput_f.c \
72+
shmem_put_nb_f.c \
7273
shmem_character_get_f.c \
7374
shmem_complex_get_f.c \
7475
shmem_double_get_f.c \
@@ -91,6 +92,7 @@ liboshmem_fortran_la_SOURCES += \
9192
shmem_integer_iget_f.c \
9293
shmem_logical_iget_f.c \
9394
shmem_real_iget_f.c \
95+
shmem_get_nb_f.c \
9496
shmem_swap_f.c \
9597
shmem_int4_swap_f.c \
9698
shmem_int8_swap_f.c \

oshmem/shmem/fortran/profile/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ nodist_liboshmem_fortran_pshmem_la_SOURCES = \
6161
pshmem_iput8_f.c \
6262
pshmem_logical_iput_f.c \
6363
pshmem_real_iput_f.c \
64+
pshmem_put_nb_f.c \
6465
pshmem_character_get_f.c \
6566
pshmem_complex_get_f.c \
6667
pshmem_double_get_f.c \
@@ -83,6 +84,7 @@ nodist_liboshmem_fortran_pshmem_la_SOURCES = \
8384
pshmem_integer_iget_f.c \
8485
pshmem_logical_iget_f.c \
8586
pshmem_real_iget_f.c \
87+
pshmem_get_nb_f.c \
8688
pshmem_swap_f.c \
8789
pshmem_int4_swap_f.c \
8890
pshmem_int8_swap_f.c \

oshmem/shmem/fortran/profile/defines.h

Lines changed: 109 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014 Mellanox Technologies, Inc.
2+
* Copyright (c) 2014-2016 Mellanox Technologies, Inc.
33
* All rights reserved.
44
* $COPYRIGHT$
55
*
@@ -118,6 +118,10 @@
118118
#define shmem_character_put_ pshmem_character_put_
119119
#define shmem_character_put__ pshmem_character_put__
120120

121+
#define SHMEM_CHARACTER_PUT_NBI PSHMEM_CHARACTER_PUT_NBI
122+
#define shmem_character_put_nbi_ pshmem_character_put_nbi_
123+
#define shmem_character_put_nbi__ pshmem_character_put_nbi__
124+
121125
#define SHMEM_COLLECT4 PSHMEM_COLLECT4
122126
#define shmem_collect4_ pshmem_collect4_
123127
#define shmem_collect4__ pshmem_collect4__
@@ -166,6 +170,10 @@
166170
#define shmem_complex_put_ pshmem_complex_put_
167171
#define shmem_complex_put__ pshmem_complex_put__
168172

173+
#define SHMEM_COMPLEX_PUT_NBI PSHMEM_COMPLEX_PUT_NBI
174+
#define shmem_complex_put_nbi_ pshmem_complex_put_nbi_
175+
#define shmem_complex_put_nbi__ pshmem_complex_put_nbi__
176+
169177
#define SHMEM_DOUBLE_GET PSHMEM_DOUBLE_GET
170178
#define shmem_double_get_ pshmem_double_get_
171179
#define shmem_double_get__ pshmem_double_get__
@@ -182,6 +190,10 @@
182190
#define shmem_double_put_ pshmem_double_put_
183191
#define shmem_double_put__ pshmem_double_put__
184192

193+
#define SHMEM_DOUBLE_PUT_NBI PSHMEM_DOUBLE_PUT_NBI
194+
#define shmem_double_put_nbi_ pshmem_double_put_nbi_
195+
#define shmem_double_put_nbi__ pshmem_double_put_nbi__
196+
185197
#define SHMEM_FENCE PSHMEM_FENCE
186198
#define shmem_fence_ pshmem_fence_
187199
#define shmem_fence__ pshmem_fence__
@@ -230,6 +242,102 @@
230242
#define shmem_iget8_ pshmem_iget8_
231243
#define shmem_iget8__ pshmem_iget8__
232244

245+
#define SHMEM_GETMEM_NBI PSHMEM_GETMEM_NBI
246+
#define shmem_getmem_nbi_ pshmem_getmem_nbi_
247+
#define shmem_getmem_nbi__ pshmem_getmem_nbi__
248+
249+
#define SHMEM_CHARACTER_GET_NBI PSHMEM_CHARACTER_GET_NBI
250+
#define shmem_character_get_nbi_ pshmem_character_get_nbi_
251+
#define shmem_character_get_nbi__ pshmem_character_get_nbi__
252+
253+
#define SHMEM_COMPLEX_GET_NBI PSHMEM_COMPLEX_GET_NBI
254+
#define shmem_complex_get_nbi_ pshmem_complex_get_nbi_
255+
#define shmem_complex_get_nbi__ pshmem_complex_get_nbi__
256+
257+
#define SHMEM_DOUBLE_GET_NBI PSHMEM_DOUBLE_GET_NBI
258+
#define shmem_double_get_nbi_ pshmem_double_get_nbi_
259+
#define shmem_double_get_nbi__ pshmem_double_get_nbi__
260+
261+
#define SHMEM_INTEGER_GET_NBI PSHMEM_INTEGER_GET_NBI
262+
#define shmem_integer_get_nbi_ pshmem_integer_get_nbi_
263+
#define shmem_integer_get_nbi__ pshmem_integer_get_nbi__
264+
265+
#define SHMEM_LOGICAL_GET_NBI PSHMEM_LOGICAL_GET_NBI
266+
#define shmem_logical_get_nbi_ pshmem_logical_get_nbi_
267+
#define shmem_logical_get_nbi__ pshmem_logical_get_nbi__
268+
269+
#define SHMEM_REAL_GET_NBI PSHMEM_REAL_GET_NBI
270+
#define shmem_real_get_nbi_ pshmem_real_get_nbi_
271+
#define shmem_real_get_nbi__ pshmem_real_get_nbi__
272+
273+
#define SHMEM_GET4_NBI PSHMEM_GET4_NBI
274+
#define shmem_get4_nbi_ pshmem_get4_nbi_
275+
#define shmem_get4_nbi__ pshmem_get4_nbi__
276+
277+
#define SHMEM_GET8_NBI PSHMEM_GET8_NBI
278+
#define shmem_get8_nbi_ pshmem_get8_nbi_
279+
#define shmem_get8_nbi__ pshmem_get8_nbi__
280+
281+
#define SHMEM_GET32_NBI PSHMEM_GET32_NBI
282+
#define shmem_get32_nbi_ pshmem_get32_nbi_
283+
#define shmem_get32_nbi__ pshmem_get32_nbi__
284+
285+
#define SHMEM_GET64_NBI PSHMEM_GET64_NBI
286+
#define shmem_get64_nbi_ pshmem_get64_nbi_
287+
#define shmem_get64_nbi__ pshmem_get64_nbi__
288+
289+
#define SHMEM_GET128_NBI PSHMEM_GET128_NBI
290+
#define shmem_get128_nbi_ pshmem_get128_nbi_
291+
#define shmem_get128_nbi__ pshmem_get128_nbi__
292+
293+
#define SHMEM_PUTMEM_NBI PSHMEM_PUTMEM_NBI
294+
#define shmem_putmem_nbi_ pshmem_putmem_nbi_
295+
#define shmem_putmem_nbi__ pshmem_putmem_nbi__
296+
297+
#define SHMEM_CHARACTER_PUT_NBI PSHMEM_CHARACTER_PUT_NBI
298+
#define shmem_character_put_nbi_ pshmem_character_put_nbi_
299+
#define shmem_character_put_nbi__ pshmem_character_put_nbi__
300+
301+
#define SHMEM_COMPLEX_PUT_NBI PSHMEM_COMPLEX_PUT_NBI
302+
#define shmem_complex_put_nbi_ pshmem_complex_put_nbi_
303+
#define shmem_complex_put_nbi__ pshmem_complex_put_nbi__
304+
305+
#define SHMEM_DOUBLE_PUT_NBI PSHMEM_DOUBLE_PUT_NBI
306+
#define shmem_double_put_nbi_ pshmem_double_put_nbi_
307+
#define shmem_double_put_nbi__ pshmem_double_put_nbi__
308+
309+
#define SHMEM_INTEGER_PUT_NBI PSHMEM_INTEGER_PUT_NBI
310+
#define shmem_integer_put_nbi_ pshmem_integer_put_nbi_
311+
#define shmem_integer_put_nbi__ pshmem_integer_put_nbi__
312+
313+
#define SHMEM_LOGICAL_PUT_NBI PSHMEM_LOGICAL_PUT_NBI
314+
#define shmem_logical_put_nbi_ pshmem_logical_put_nbi_
315+
#define shmem_logical_put_nbi__ pshmem_logical_put_nbi__
316+
317+
#define SHMEM_REAL_PUT_NBI PSHMEM_REAL_PUT_NBI
318+
#define shmem_real_put_nbi_ pshmem_real_put_nbi_
319+
#define shmem_real_put_nbi__ pshmem_real_put_nbi__
320+
321+
#define SHMEM_PUT4_NBI PSHMEM_PUT4_NBI
322+
#define shmem_put4_nbi_ pshmem_put4_nbi_
323+
#define shmem_put4_nbi__ pshmem_put4_nbi__
324+
325+
#define SHMEM_PUT8_NBI PSHMEM_PUT8_NBI
326+
#define shmem_put8_nbi_ pshmem_put8_nbi_
327+
#define shmem_put8_nbi__ pshmem_put8_nbi__
328+
329+
#define SHMEM_PUT32_NBI PSHMEM_PUT32_NBI
330+
#define shmem_put32_nbi_ pshmem_put32_nbi_
331+
#define shmem_put32_nbi__ pshmem_put32_nbi__
332+
333+
#define SHMEM_PUT64_NBI PSHMEM_PUT64_NBI
334+
#define shmem_put64_nbi_ pshmem_put64_nbi_
335+
#define shmem_put64_nbi__ pshmem_put64_nbi__
336+
337+
#define SHMEM_PUT128_NBI PSHMEM_PUT128_NBI
338+
#define shmem_put128_nbi_ pshmem_put128_nbi_
339+
#define shmem_put128_nbi__ pshmem_put128_nbi__
340+
233341
#define SHMEM_INT4_ADD PSHMEM_INT4_ADD
234342
#define shmem_int4_add_ pshmem_int4_add_
235343
#define shmem_int4_add__ pshmem_int4_add__

oshmem/shmem/fortran/profile/prototypes_pshmem.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ PN (void, pshpclmove, PSHPCLMOVE, (FORTRAN_POINTER_T *addr, MPI_Fint *length, MP
3636
PN (FORTRAN_POINTER_T*, pshmem_ptr, PSHMEM_PTR, (FORTRAN_POINTER_T target, MPI_Fint *pe));
3737
PN (ompi_fortran_logical_t, pshmem_pe_accessible, PSHMEM_PE_ACCESSIBLE, (MPI_Fint *pe));
3838
PN (MPI_Fint, pshmem_addr_accessible, PSHMEM_ADDR_ACCESSIBLE, (FORTRAN_POINTER_T addr, MPI_Fint *pe));
39+
3940
PN (void, pshmem_put, PSHMEM_PUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
4041
PN (void, pshmem_character_put, PSHMEM_CHARACTER_PUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
4142
PN (void, pshmem_complex_put, PSHMEM_COMPLEX_PUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
@@ -49,6 +50,7 @@ PN (void, pshmem_put32, PSHMEM_PUT32, (FORTRAN_POINTER_T target, FORTRAN_POINTER
4950
PN (void, pshmem_put64, PSHMEM_PUT64, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
5051
PN (void, pshmem_put128, PSHMEM_PUT128, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
5152
PN (void, pshmem_putmem, PSHMEM_PUTMEM, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
53+
5254
PN (void, pshmem_iput4, PSHMEM_IPUT4, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
5355
PN (void, pshmem_iput8, PSHMEM_IPUT8, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
5456
PN (void, pshmem_iput32, PSHMEM_IPUT32, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
@@ -59,6 +61,20 @@ PN (void, pshmem_double_iput, PSHMEM_DOUBLE_IPUT, (FORTRAN_POINTER_T target, FOR
5961
PN (void, pshmem_integer_iput, PSHMEM_INTEGER_IPUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
6062
PN (void, pshmem_logical_iput, PSHMEM_LOGICAL_IPUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
6163
PN (void, pshmem_real_iput, PSHMEM_REAL_IPUT, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
64+
65+
PN (void, pshmem_putmem_nbi, PSHMEM_PUTMEM_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
66+
PN (void, pshmem_character_put_nbi, PSHMEM_CHARACTER_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
67+
PN (void, pshmem_complex_put_nbi, PSHMEM_COMPLEX_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
68+
PN (void, pshmem_double_put_nbi, PSHMEM_DOUBLE_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
69+
PN (void, pshmem_integer_put_nbi, PSHMEM_INTEGER_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
70+
PN (void, pshmem_logical_put_nbi, PSHMEM_LOGICAL_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
71+
PN (void, pshmem_real_put_nbi, PSHMEM_REAL_PUT_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
72+
PN (void, pshmem_put4_nbi, PSHMEM_PUT4_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
73+
PN (void, pshmem_put8_nbi, PSHMEM_PUT8_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
74+
PN (void, pshmem_put32_nbi, PSHMEM_PUT32_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
75+
PN (void, pshmem_put64_nbi, PSHMEM_PUT64_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
76+
PN (void, pshmem_put128_nbi, PSHMEM_PUT128_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe));
77+
6278
PN (void, pshmem_character_get, PSHMEM_CHARACTER_GET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
6379
PN (void, pshmem_complex_get, PSHMEM_COMPLEX_GET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
6480
PN (void, pshmem_double_get, PSHMEM_DOUBLE_GET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
@@ -71,6 +87,7 @@ PN (void, pshmem_get128, PSHMEM_GET128, (FORTRAN_POINTER_T target, FORTRAN_POINT
7187
PN (void, pshmem_getmem, PSHMEM_GETMEM, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
7288
PN (void, pshmem_logical_get, PSHMEM_LOGICAL_GET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
7389
PN (void, pshmem_real_get, PSHMEM_REAL_GET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
90+
7491
PN (void, pshmem_iget4, PSHMEM_IGET4, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
7592
PN (void, pshmem_iget8, PSHMEM_IGET8, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
7693
PN (void, pshmem_iget32, PSHMEM_IGET32, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
@@ -81,6 +98,20 @@ PN (void, pshmem_double_iget, PSHMEM_DOUBLE_IGET, (FORTRAN_POINTER_T target, FOR
8198
PN (void, pshmem_integer_iget, PSHMEM_INTEGER_IGET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
8299
PN (void, pshmem_logical_iget, PSHMEM_LOGICAL_IGET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
83100
PN (void, pshmem_real_iget, PSHMEM_REAL_IGET, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe));
101+
102+
PN (void, pshmem_getmem_nbi, PSHMEM_GETMEM_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
103+
PN (void, pshmem_character_get_nbi, PSHMEM_CHARACTER_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
104+
PN (void, pshmem_complex_get_nbi, PSHMEM_COMPLEX_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
105+
PN (void, pshmem_double_get_nbi, PSHMEM_DOUBLE_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
106+
PN (void, pshmem_integer_get_nbi, PSHMEM_INTEGER_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
107+
PN (void, pshmem_logical_get_nbi, PSHMEM_LOGICAL_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
108+
PN (void, pshmem_real_get_nbi, PSHMEM_REAL_GET_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
109+
PN (void, pshmem_get4_nbi, PSHMEM_GET4_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
110+
PN (void, pshmem_get8_nbi, PSHMEM_GET8_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
111+
PN (void, pshmem_get32_nbi, PSHMEM_GET32_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
112+
PN (void, pshmem_get64_nbi, PSHMEM_GET64_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
113+
PN (void, pshmem_get128_nbi, PSHMEM_GET128_NBI, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe));
114+
84115
PN (MPI_Fint, pshmem_swap, PSHMEM_SWAP, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T value, MPI_Fint *pe));
85116
PN (ompi_fortran_integer4_t, pshmem_int4_swap, PSHMEM_INT4_SWAP, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T value, MPI_Fint *pe));
86117
PN (ompi_fortran_integer8_t, pshmem_int8_swap, PSHMEM_INT8_SWAP, (FORTRAN_POINTER_T target, FORTRAN_POINTER_T value, MPI_Fint *pe));

0 commit comments

Comments
 (0)