Yossi Itigin
939162ed33
oshmem/scoll: fix shmem_collect32/64 for zero-size length
...
Fixes scoll_basic failures with shmem_verifier, caused by recent changes
in handling of zero-size collectives.
- Check for zero-size length only for fixed size collect (shmem_fcollect),
but not for variable-size collect (shmem_collect)
- Add 'nlong_type' parameter to internal broadcast function, to indicate
whether the 'nlong' parameter is valid on non-root PEs, since it's
used by shmem_collect algorithm. Before this change, some components
assumed it's true (scoll_mpi) while others assumed it's false
(scoll_basic).
- In scoll_basic, if nlong_type==false, do not exit if nlong==0, since
this parameter may not be the same on all PEs.
- In scoll_mpi, fallback to scoll_basic if nlong_type==false, since MPI
requires the 'count' argument of MPI_Bcast to be valid on all ranks.
Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2019-01-01 20:43:32 +02:00
Sergey Oblomov
cfa9150934
OSHMEM: added missing API for get/put operations
...
- added calls for datatypes int/uint/8/16/32/size/ptrdiff
for shmem_g/get/iget/get_nbi/_p/put/iput/put_nbi
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-12-17 11:34:03 +02:00
Sergey Oblomov
9de128afaf
OSHMEM: added processing of zero-length collectives
...
- according spec 1.4, annex C shmem collectives should process
calls where number of elements is zero independently from pointer
value
- added zero-count processing - it just call barrier to
sync ranks
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-11-23 14:34:46 +02:00
Sergey Oblomov
4c071da565
OSHMEM/AMO: added int/uint/32/64 atomics calls
...
- added int/uint/32/64 atomics calls
- added SHMEM_SYNC_SIZE macro
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-11-22 10:18:16 +02:00
Yossi Itigin
241b424bd3
Merge pull request #6000 from hoopoepg/topic/added-missing-amo-datatypes
...
OSHMEM/AMO: added missing C11 macro datatypes
2018-11-01 15:29:56 +02:00
Sergey Oblomov
6e78102089
OSHMEM/AMO: code beautify
...
- added <cr> to split API groups to simplify human processing
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-11-01 11:33:34 +02:00
Sergey Oblomov
f63d6da6d7
OSHMEM/AMO: added missing C11 macro datatypes
...
- added signed datatypes for atomic_add calls
- added unsigned datatypes for atomic put/inc/get/fetch calls
- fixed incorrect SHMEM_CTX_DEFAULT macro, added
external declaration of oshmem_ctx_default variable
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-10-30 23:15:26 +02:00
Sergey Oblomov
4a3e83780c
OSHMEM/PROFILE: fixed profile build
...
- added missing file to profile makefile
- constants SHMEM_CTX_* are shifted into public header
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-10-29 23:50:26 +02:00
Yossi Itigin
41011502c8
shmem/lock: progress communications while waiting for shmem_lock
...
Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2018-09-16 18:46:36 +03:00
Sergey Oblomov
7a5ff6a076
OSHMEM: removed incorrect pshmem_wait_until macro redefinition
...
- fixes https://github.com/open-mpi/ompi/issues/5585
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-08-23 18:03:01 +03:00
Xin Zhao
c429900cd9
OMPI/OSHMEM: add new functionality of OpenSHMEM v1.4.
...
Signed-off-by: Xin Zhao <xinz@mellanox.com>
2018-07-16 12:55:25 -07:00
Sergey Oblomov
bd84165277
ATOMICS: renamed atomic calls to unsigned datatypes
...
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-13 15:32:16 +03:00
Joshua Ladd
f92daa6494
Merge pull request #5392 from hoopoepg/topic/bitwise-atomics-c
...
OSHMEM/ATOMICS: added C implementation of and/or/xor ops
2018-07-10 09:13:05 -04:00
Sergey Oblomov
0212410187
OSHMEM/ATOMICS: fixed comments errors
...
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-10 10:13:40 +03:00
Sergey Oblomov
64212a9ff1
OSHMEM/ATOMICS: added C implementation of and/or/xor ops
...
- added implementation and/or/xor operations for post and
fetch-op notations
- implemented basic and UCX transports, mxm added
NON-IMPLEMENTED wrapper
- updated C interfaces only (fortran will be added later)
- existing API is not updated to spec v1.4
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-09 16:18:47 +03:00
Sergey Oblomov
f2a24a008c
OSHMEM: fixed compilation warning
...
- suppressed warning like: warning: no previous prototype for
'shmemx_XXXXX_OP' [-Wmissing-prototypes]
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-09 10:44:35 +03:00
Sergey Oblomov
586c16be70
ATOMIC/UCX: renamed ATOMIC_PTR_2_INT to OSHMEM_ATOMIC_PTR_2_INT
...
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-04 15:07:39 +03:00
Sergey Oblomov
54d97efa84
ATOMIC/UCX: fixed atomic swap/cswap issues
...
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-04 14:41:48 +03:00
Sergey Oblomov
5eb8c99cd7
ATOMIC/UCX: optimization for cswap
...
- used uint64_t output datatype to avoid branches in
implementations
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-04 14:41:46 +03:00
Sergey Oblomov
f574c14e3a
ATOMICS/UCX: redefine atomic module API
...
- now it accepts integer values directily instead of
pointers
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-04 14:41:45 +03:00
Sergey Oblomov
eb0abfcf92
SHMEM/ATOMIC: refactoring of module API
...
- removed atomic-basic-specific operand from module API
- added own calls for add and swap operations
- minor optimization for UCX atomics
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2018-07-04 14:40:14 +03:00
Mikhail Brinskii
8e9d401938
OSHMEM/SMPL/UCX: Add real fence support
...
+ Add quiet method to SPML, so it can have different implementation with
fence.
+ Use ucp_worker_fence for spml_fence method of UCX SPML
Signed-off-by: Mikhail Brinskii <mikhailb@mellanox.com>
2018-05-25 22:43:06 +03:00
Geoff Paulsen
591b174434
Merge pull request #5003 from sam6258/shmem_free_fix
...
ompi/oshmem: fix shmem_free to perform no-op on null ptr
2018-04-30 12:03:24 -05:00
Scott Miller
a8766adb55
ompi/oshmem: fix shmem_free to perform no-op on null ptr
...
Signed-off-by: Scott Miller <scott.miller1@ibm.com>
2018-04-02 17:12:24 -04:00
Xin Zhao
4aad386c2b
ompi/oshmem: fix bug in shmem_finalize.
...
Signed-off-by: Xin Zhao <xinz@mellanox.com>
2018-04-02 09:07:59 -05:00
Alex Mikheev
292d185c30
oshmem: refactor group cache
...
- Use opal hash table instead of list for group lookup.
- Code cleanup/refactoring. Group cache is now a part
of the proc_group.
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2018-02-22 11:48:06 +02:00
Boris Karasev
f6818af1ab
oshmem: remove "shmem_broadcast" in accordance with the spec v1.3
...
Fixes: https://github.com/open-mpi/ompi/issues/4098
Signed-off-by: Boris Karasev <karasev.b@gmail.com>
2017-12-19 10:41:12 +02:00
Alex Mikheev
1b5df76f8b
oshmem: shmem_ptr() implementation
...
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2017-08-03 13:56:34 +03:00
Gilles Gouaillardet
08526e8adc
fortran/base: rename strings.h into fortran_base_strings.h
...
rename ompi/mpi/fortran/base/strings.h so it does not get pulled
when /usr/include/strings.h is expected.
Refs open-mpi/ompi#3639
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-06-02 09:46:20 +09:00
Gilles Gouaillardet
af0b5cffb4
asm: rename the AMD64 into X86_64
...
in this context, AMD64 really means amd64 or em64t, so let's
rename this into X86_64 in order to avoid any confusion
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-27 15:10:50 +09:00
Alex Mikheev
d1723355d3
oshmem: memheap: removes find_offset
...
Reasons for removal are:
- the function is only used by the shmem_lock code
- only a subset of the function is used by the shmem_lock
- for the general case the function is not correct
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2016-11-21 16:09:17 +02:00
Joshua Ladd
9a79da729f
Merge pull request #2354 from alex-mikheev/topic/oshmem_mkey_cache
...
ikrit spml cleanup, mkey cache and assorted bug fixes
2016-11-14 17:22:13 -05:00
Alex Mikheev
48a7a0bbb9
oshmem: lock: call opal_progress only when busy waiting
...
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2016-11-10 11:27:24 +02:00
Alex Mikheev
18301429a0
oshmem: removes fortran shmem_put() because v1.3 does not have it
...
picked from the 64a8f64afd351e37e7d80a080e495c082b56517c
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2016-11-07 13:47:57 +02:00
Alex Mikheev
7caa736533
OSHMEM: fixes potential deadlock in shmem_lock()
...
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2016-11-06 11:56:42 +02:00
Alex Mikheev
61bd59a369
OSHMEM: fixes addr_acessible()
...
check every possible transport
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2016-11-06 11:56:41 +02:00
Alex Mikheev
6c798fe08d
OSHMEM: updates copyrights in fortran fetch/set
...
(cherry picked from commit f5297ccdb277208a96aaffd72a6454afe712fdb4)
2016-10-20 15:09:27 +03:00
Alex Mikheev
9a21392ec2
OSHMEM: v1.3: add C11 generics
...
add missing put*/get* functions. Move *put|get16 functions from shmemx.h to
shmem.h as required by 1.3 spec.
2016-09-25 16:43:00 +03:00
Alex Mikheev
3a034352fe
OSHMEM: v1.3: adds shmem_fetch and shmem_set AMOs
...
The commit adds atomic set and fetch functions as described in
oshmem 1.3 spec.
2016-09-25 12:03:42 +03:00
Gilles Gouaillardet
92dd719df1
oshmem: move finalization from the liboshmem destructor into oshmem_onexit()
...
so we can use the legacy start_pes even when Open MPI is compiled with
--enable-static or --disable-visibility
2016-09-21 09:21:26 +09:00
Boris Karasev
49b67094e0
oshmem/fortran: fix warning mesages && fix size
2016-07-22 15:54:01 +06:00
Rainer Keller
3ec1b868d1
Fix missing include and missing MCA_SPML_CALL.
2016-07-13 11:23:47 +02:00
Igor Ivanov
75050b44a2
oshmem: Align OSHMEM API with spec v1.3 (extension api changes)
...
openshmem.org specification does not mention about extension api
but there is an agreemnet to do these changes for related ex api too.
see
Annex G:
Version 1.3
Added const to every read-only pointer argument
2016-04-18 19:38:16 +03:00
Igor Ivanov
157f81b699
oshmem: Align OSHMEM API with spec v1.3 (Added const to every read-only pointer argument)
...
Annex G:
Version 1.3
Added const to every read-only pointer argument
2016-04-18 19:25:31 +03:00
Igor Ivanov
c02d0b7161
oshmem: Align OSHMEM API with spec v1.3 (shmem_lock change signature)
...
Annex G:
Version 1.3
Added volatile to remotely accessible pointer argument in
SHMEM_LOCK
See Sections 8.9.1
2016-04-18 19:25:18 +03:00
Igor Ivanov
a52b0797fc
oshmem: Align OSHMEM API with spec v1.3 (shmem_wait change signature)
...
Annex G:
Version 1.3
Added volatile to remotely accessible pointer argument in SHMEM_WAIT
See Sections 8.7.1
2016-04-18 19:24:55 +03:00
Mike Dubman
1d8fbfefb0
Merge pull request #1478 from igor-ivanov/pr/oshmem-v1.3-alltoall
...
oshmem: Add alltoall
2016-03-22 07:51:36 +02:00
Igor Ivanov
1bed5d8aee
oshmem: Align OSHMEM API with spec v1.3 (update scoll/basic)
2016-03-21 11:46:01 +02:00
Igor Ivanov
9825157fc4
oshmem: Align OSHMEM API with spec v1.3 (Add man for alltoall)
2016-03-21 10:43:45 +02:00
Igor Ivanov
3e1e131744
oshmem: Align OSHMEM API with spec v1.3 (Add alltoall Fortran)
2016-03-21 10:43:44 +02:00