Skip to content

Commit 9863afb

Browse files
committed
PCOMM: Rename Precv_init/PSend_init to MPIX for 5.0.0
Related to open-mpi#11967 The MPI Forum decided to change the API for partitioned communication subroutines MPI_Psend_init and MPI_Precv_init as part of MPI 4.1. This has generated quite a bit of dicussion, see mpi-forum/mpi-issues#765. Rather than release a 5.0.0 with a set of functions which will be redefined if the current MPI 4.1-rc is ratified and we want OMPI to be 4.1 compliant, just rename the existing MPI_Psend_init and MPI_Precv_init to MPIX_ prefixed. This commit also fixes a bug with the Fortran interfaces. They weren't compliant with the MPI 4.0 definitions in any case. Signed-off-by: Howard Pritchard <[email protected]>
1 parent a1b02c6 commit 9863afb

17 files changed

+149
-130
lines changed

docs/Makefile.am

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,9 +364,9 @@ OMPI_MAN3 = \
364364
MPI_Pready.3 \
365365
MPI_Pready_list.3 \
366366
MPI_Pready_range.3 \
367-
MPI_Precv_init.3 \
367+
MPIX_Precv_init.3 \
368368
MPI_Probe.3 \
369-
MPI_Psend_init.3 \
369+
MPIX_Psend_init.3 \
370370
MPI_Publish_name.3 \
371371
MPI_Put.3 \
372372
MPI_Query_thread.3 \

docs/man-openmpi/man3/MPI_Precv_init.3.rst renamed to docs/man-openmpi/man3/MPIX_Precv_init.3.rst

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
.. _mpi_precv_init:
22

33

4-
MPI_Precv_init
5-
==============
4+
MPIX_Precv_init
5+
===============
66

77
.. include_body
88
9-
:ref:`MPI_Precv_init` - Initializes a partitioned receive.
9+
:ref:`MPIX_Precv_init` - Initializes a partitioned receive.
1010

1111

1212
SYNTAX
@@ -20,7 +20,7 @@ C Syntax
2020
2121
#include <mpi.h>
2222
23-
int MPI_Precv_init(const void *buf, int partitions, int count, MPI_Datatype datatype, int dest,
23+
int MPIX_Precv_init(const void *buf, int partitions, MPI_Count count, MPI_Datatype datatype, int dest,
2424
int tag, MPI_Comm comm, MPI_Request *request)
2525
2626
@@ -31,9 +31,10 @@ Fortran Syntax
3131
3232
USE MPI
3333
! or the older form: INCLUDE 'mpif.h'
34-
MPI_PRECV_INIT(BUF, PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
34+
MPIX_PRECV_INIT(BUF, PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
3535
<type> BUF(*)
36-
INTEGER PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR
36+
INTEGER PARTITIONS, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR
37+
INTEGER(KIND=MPI_COUNT_KIND) COUNT
3738
3839
3940
Fortran 2008 Syntax
@@ -42,9 +43,10 @@ Fortran 2008 Syntax
4243
.. code-block:: fortran
4344
4445
USE mpi_f08
45-
MPI_Precv_init(buf, partitions, count, datatype, dest, tag, comm, request, ierror)
46+
MPIX_Precv_init(buf, partitions, count, datatype, dest, tag, comm, request, ierror)
4647
TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf
47-
INTEGER, INTENT(IN) :: partitions, count, dest, tag
48+
INTEGER, INTENT(IN) :: partitions, dest, tag
49+
INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN) :: count
4850
TYPE(MPI_Datatype), INTENT(IN) :: datatype
4951
TYPE(MPI_Comm), INTENT(IN) :: comm
5052
TYPE(MPI_Request), INTENT(OUT) :: request
@@ -55,7 +57,7 @@ INPUT PARAMETERS
5557
----------------
5658
* ``buf``: Initial address of receive buffer (choice).
5759
* ``partitions``: Number of partitions (integer).
58-
* ``count``: Number of elements to be received per partition (integer).
60+
* ``count``: Number of elements to be received per partition (MPI_Count).
5961
* ``datatype``: Datatype of each element (handle).
6062
* ``dest``: Rank of source (integer).
6163
* ``tag``: Message tag (integer).
@@ -76,10 +78,13 @@ NOTE
7678

7779
The current implementation is an early prototype and is not fully
7880
compliant with the MPI-4.0 specification. Specifically this function and
79-
it's counterpart (MPI_Psend_init) will block until the partitioned
81+
it's counterpart (MPIX_Psend_init) will block until the partitioned
8082
communication request is initialized on both ends. This behavior will be
8183
corrected in future versions.
8284

85+
The MPIX prefix is used to denote that this function's API will likely change
86+
in the MPI-4.1 specification.
87+
8388

8489
.. seealso::
85-
* :ref:`MPI_Psend_init`
90+
* :ref:`MPIX_Psend_init`

docs/man-openmpi/man3/MPI_Psend_init.3.rst renamed to docs/man-openmpi/man3/MPIX_Psend_init.3.rst

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
.. _mpi_psend_init:
22

33

4-
MPI_Psend_init
4+
PMIX_Psend_init
55
==============
66

77
.. include_body
88
9-
:ref:`MPI_Psend_init` - Initializes a partitioned send.
9+
:ref:`PMIX_Psend_init` - Initializes a partitioned send.
1010

1111

1212
SYNTAX
@@ -20,7 +20,7 @@ C Syntax
2020
2121
#include <mpi.h>
2222
23-
int MPI_Psend_init(const void *buf, int partitions, int count, MPI_Datatype datatype, int dest,
23+
int PMIX_Psend_init(const void *buf, int partitions, MPI_Count count, MPI_Datatype datatype, int dest,
2424
int tag, MPI_Comm comm, MPI_Request *request)
2525
2626
@@ -31,9 +31,10 @@ Fortran Syntax
3131
3232
USE MPI
3333
! or the older form: INCLUDE 'mpif.h'
34-
MPI_PSEND_INIT(BUF, PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
34+
MPIX_PSEND_INIT(BUF, PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
3535
<type> BUF(*)
36-
INTEGER PARTITIONS, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR
36+
INTEGER PARTITIONS, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR
37+
INTEGER(KIND=MPI_COUNT_KIND) COUNT
3738
3839
3940
Fortran 2008 Syntax
@@ -42,9 +43,10 @@ Fortran 2008 Syntax
4243
.. code-block:: fortran
4344
4445
USE mpi_f08
45-
MPI_Psend_init(buf, partitions, count, datatype, dest, tag, comm, request, ierror)
46+
PMIX_Psend_init(buf, partitions, count, datatype, dest, tag, comm, request, ierror)
4647
TYPE(*), DIMENSION(..), INTENT(IN), ASYNCHRONOUS :: buf
47-
INTEGER, INTENT(IN) :: partitions, count, dest, tag
48+
INTEGER, INTENT(IN) :: partitions, dest, tag
49+
INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN) :: count
4850
TYPE(MPI_Datatype), INTENT(IN) :: datatype
4951
TYPE(MPI_Comm), INTENT(IN) :: comm
5052
TYPE(MPI_Request), INTENT(OUT) :: request
@@ -55,7 +57,7 @@ INPUT PARAMETERS
5557
----------------
5658
* ``buf``: Initial address of send buffer (choice).
5759
* ``partitions``: Number of partitions (integer).
58-
* ``count``: Number of elements to be sent per partition (integer).
60+
* ``count``: Number of elements to be sent per partition (MPI_Count).
5961
* ``datatype``: Datatype of each element (handle).
6062
* ``dest``: Rank of source (integer).
6163
* ``tag``: Message tag (integer).
@@ -80,6 +82,8 @@ it's counterpart (MPI_Precv_init) will block until the partitioned
8082
communication request is initialized on both ends. This behavior will be
8183
corrected in future versions.
8284

85+
The MPIX prefix is used to denote that this function's API will likely change
86+
in the MPI-4.1 specification.
8387

8488
.. seealso::
85-
* :ref:`MPI_Precv_init`
89+
* :ref:`MPIX_Precv_init`

docs/man-openmpi/man3/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,9 @@ MPI API manual pages (section 3)
286286
MPI_Pready.3.rst
287287
MPI_Pready_list.3.rst
288288
MPI_Pready_range.3.rst
289-
MPI_Precv_init.3.rst
289+
MPIX_Precv_init.3.rst
290290
MPI_Probe.3.rst
291-
MPI_Psend_init.3.rst
291+
MPIX_Psend_init.3.rst
292292
MPI_Publish_name.3.rst
293293
MPI_Put.3.rst
294294
MPI_Query_thread.3.rst

ompi/include/mpi.h.in

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1861,13 +1861,13 @@ OMPI_DECLSPEC int MPI_Pready(int partitions, MPI_Request request);
18611861
OMPI_DECLSPEC int MPI_Pready_range(int partition_low, int partition_high,
18621862
MPI_Request request);
18631863
OMPI_DECLSPEC int MPI_Pready_list(int length, int partition_list[], MPI_Request request);
1864-
OMPI_DECLSPEC int MPI_Precv_init(void* buf, int partitions, MPI_Count count,
1865-
MPI_Datatype datatype, int source, int tag, MPI_Comm comm,
1866-
MPI_Info info, MPI_Request *request);
1864+
OMPI_DECLSPEC int MPIX_Precv_init(void* buf, int partitions, MPI_Count count,
1865+
MPI_Datatype datatype, int source, int tag, MPI_Comm comm,
1866+
MPI_Info info, MPI_Request *request);
18671867
OMPI_DECLSPEC int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status);
1868-
OMPI_DECLSPEC int MPI_Psend_init(const void* buf, int partitions, MPI_Count count,
1869-
MPI_Datatype datatype, int dest, int tag, MPI_Comm comm,
1870-
MPI_Info info, MPI_Request *request);
1868+
OMPI_DECLSPEC int MPIX_Psend_init(const void* buf, int partitions, MPI_Count count,
1869+
MPI_Datatype datatype, int dest, int tag, MPI_Comm comm,
1870+
MPI_Info info, MPI_Request *request);
18711871
OMPI_DECLSPEC int MPI_Publish_name(const char *service_name, MPI_Info info,
18721872
const char *port_name);
18731873
OMPI_DECLSPEC int MPI_Put(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
@@ -2547,12 +2547,12 @@ OMPI_DECLSPEC int PMPI_Isendrecv_replace(void * buf, int count, MPI_Datatype da
25472547
MPI_Comm comm, MPI_Request *request);
25482548
OMPI_DECLSPEC int PMPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest,
25492549
int tag, MPI_Comm comm, MPI_Request *request);
2550-
OMPI_DECLSPEC int PMPI_Precv_init(void* buf, int partitions, MPI_Count count,
2551-
MPI_Datatype datatype, int source, int tag, MPI_Comm comm,
2552-
MPI_Info info, MPI_Request *request);
2553-
OMPI_DECLSPEC int PMPI_Psend_init(const void* buf, int partitions, MPI_Count count,
2554-
MPI_Datatype datatype, int dest, int tag, MPI_Comm comm,
2555-
MPI_Info info, MPI_Request *request);
2550+
OMPI_DECLSPEC int PMPIX_Precv_init(void* buf, int partitions, MPI_Count count,
2551+
MPI_Datatype datatype, int source, int tag, MPI_Comm comm,
2552+
MPI_Info info, MPI_Request *request);
2553+
OMPI_DECLSPEC int PMPIX_Psend_init(const void* buf, int partitions, MPI_Count count,
2554+
MPI_Datatype datatype, int dest, int tag, MPI_Comm comm,
2555+
MPI_Info info, MPI_Request *request);
25562556
OMPI_DECLSPEC int PMPI_Pready(int partitions, MPI_Request request);
25572557
OMPI_DECLSPEC int PMPI_Pready_range(int partition_low, int partition_high,
25582558
MPI_Request request);

ompi/mpi/c/precv_init.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@
3636

3737
#if OMPI_BUILD_MPI_PROFILING
3838
#if OPAL_HAVE_WEAK_SYMBOLS
39-
#pragma weak MPI_Precv_init = PMPI_Precv_init
39+
#pragma weak MPIX_Precv_init = PMPIX_Precv_init
4040
#endif
41-
#define MPI_Precv_init PMPI_Precv_init
41+
#define MPIX_Precv_init PMPIX_Precv_init
4242
#endif
4343

44-
static const char FUNC_NAME[] = "MPI_Precv_init";
44+
static const char FUNC_NAME[] = "MPIX_Precv_init";
4545

4646

47-
int MPI_Precv_init(void* buf, int partitions, MPI_Count count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Info info, MPI_Request *request)
47+
int MPIX_Precv_init(void* buf, int partitions, MPI_Count count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Info info, MPI_Request *request)
4848
{
4949
int rc;
5050

ompi/mpi/c/psend_init.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@
3636

3737
#if OMPI_BUILD_MPI_PROFILING
3838
#if OPAL_HAVE_WEAK_SYMBOLS
39-
#pragma weak MPI_Psend_init = PMPI_Psend_init
39+
#pragma weak MPIX_Psend_init = PMPIX_Psend_init
4040
#endif
41-
#define MPI_Psend_init PMPI_Psend_init
41+
#define MPIX_Psend_init PMPIX_Psend_init
4242
#endif
4343

44-
static const char FUNC_NAME[] = "MPI_Psend_init";
44+
static const char FUNC_NAME[] = "MPIX_Psend_init";
4545

4646

47-
int MPI_Psend_init(const void* buf, int partitions, MPI_Count count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Info info, MPI_Request *request)
47+
int MPIX_Psend_init(const void* buf, int partitions, MPI_Count count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Info info, MPI_Request *request)
4848
{
4949
int rc;
5050

ompi/mpi/fortran/mpif-h/precv_init_f.c

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,48 +28,48 @@
2828

2929
#if OMPI_BUILD_MPI_PROFILING
3030
#if OPAL_HAVE_WEAK_SYMBOLS
31-
#pragma weak PMPI_PRECV_INIT = ompi_precv_init_f
32-
#pragma weak pmpi_precv_init = ompi_precv_init_f
33-
#pragma weak pmpi_precv_init_ = ompi_precv_init_f
34-
#pragma weak pmpi_precv_init__ = ompi_precv_init_f
31+
#pragma weak PMPIX_PRECV_INIT = ompi_precv_init_f
32+
#pragma weak pmpix_precv_init = ompi_precv_init_f
33+
#pragma weak pmpix_precv_init_ = ompi_precv_init_f
34+
#pragma weak pmpix_precv_init__ = ompi_precv_init_f
3535

36-
#pragma weak PMPI_Precv_init_f = ompi_precv_init_f
37-
#pragma weak PMPI_Precv_init_f08 = ompi_precv_init_f
36+
#pragma weak PMPIX_Precv_init_f = ompi_precv_init_f
37+
#pragma weak PMPIX_Precv_init_f08 = ompi_precv_init_f
3838
#else
39-
OMPI_GENERATE_F77_BINDINGS (PMPI_PRECV_INIT,
40-
pmpi_precv_init,
41-
pmpi_precv_init_,
42-
pmpi_precv_init__,
39+
OMPI_GENERATE_F77_BINDINGS (PMPIX_PRECV_INIT,
40+
pmpix_precv_init,
41+
pmpix_precv_init_,
42+
pmpix_precv_init__,
4343
pompi_precv_init_f,
44-
(char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr),
44+
(char *buf, MPI_Fint *partitions, MPI_Count *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr),
4545
(buf, partitions, count, datatype, dest, tag, comm, info, request, ierr) )
4646
#endif
4747
#endif
4848

4949
#if OPAL_HAVE_WEAK_SYMBOLS
50-
#pragma weak MPI_PRECV_INIT = ompi_precv_init_f
51-
#pragma weak mpi_precv_init = ompi_precv_init_f
52-
#pragma weak mpi_precv_init_ = ompi_precv_init_f
53-
#pragma weak mpi_precv_init__ = ompi_precv_init_f
50+
#pragma weak MPIX_PRECV_INIT = ompi_precv_init_f
51+
#pragma weak mpix_precv_init = ompi_precv_init_f
52+
#pragma weak mpix_precv_init_ = ompi_precv_init_f
53+
#pragma weak mpix_precv_init__ = ompi_precv_init_f
5454

55-
#pragma weak MPI_Precv_init_f = ompi_precv_init_f
56-
#pragma weak MPI_Precv_init_f08 = ompi_precv_init_f
55+
#pragma weak MPIX_Precv_init_f = ompi_precv_init_f
56+
#pragma weak MPIX_Precv_init_f08 = ompi_precv_init_f
5757
#else
5858
#if ! OMPI_BUILD_MPI_PROFILING
59-
OMPI_GENERATE_F77_BINDINGS (MPI_PRECV_INIT,
60-
mpi_precv_init,
61-
mpi_precv_init_,
62-
mpi_precv_init__,
59+
OMPI_GENERATE_F77_BINDINGS (MPIX_PRECV_INIT,
60+
mpix_precv_init,
61+
mpix_precv_init_,
62+
mpix_precv_init__,
6363
ompi_precv_init_f,
64-
(char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr),
64+
(char *buf, MPI_Fint *partitions, MPI_Count *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr),
6565
(buf, partitions, count, datatype, dest, tag, comm, info, request, ierr) )
6666
#else
6767
#define ompi_precv_init_f pompi_precv_init_f
6868
#endif
6969
#endif
7070

7171

72-
void ompi_precv_init_f(char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr)
72+
void ompi_precv_init_f(char *buf, MPI_Fint *partitions, MPI_Count *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr)
7373
{
7474
int c_ierr;
7575
MPI_Info c_info;
@@ -80,9 +80,9 @@ void ompi_precv_init_f(char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fin
8080
c_info = PMPI_Info_f2c(*info);
8181
c_comm = PMPI_Comm_f2c (*comm);
8282

83-
c_ierr = PMPI_Precv_init(OMPI_F2C_BOTTOM(buf),
83+
c_ierr = PMPIX_Precv_init(OMPI_F2C_BOTTOM(buf),
8484
OMPI_FINT_2_INT(*partitions),
85-
OMPI_FINT_2_INT(*count),
85+
*count,
8686
c_type, OMPI_FINT_2_INT(*dest),
8787
OMPI_FINT_2_INT(*tag),
8888
c_comm, c_info, &c_req);

ompi/mpi/fortran/mpif-h/prototypes_mpi.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ PN2(void, MPI_Pcontrol, mpi_pcontrol, MPI_PCONTROL, (MPI_Fint *level));
355355
PN2(void, MPI_Pready, mpi_pready, MPI_PREADY, (MPI_Fint *partition, MPI_Fint *request, MPI_Fint *ierr));
356356
PN2(void, MPI_Pready_list, mpi_pready_list, MPI_PREADY_LIST, (MPI_Fint *length, MPI_Fint *partition, MPI_Fint *request, MPI_Fint *ierr));
357357
PN2(void, MPI_Pready_range, mpi_pready_range, MPI_PREADY_RANGE, (MPI_Fint *partition_low, MPI_Fint *partition_high, MPI_Fint *request, MPI_Fint *ierr));
358-
PN2(void, MPI_Precv_init, mpi_precv_init, MPI_PRECV_INIT, (char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *src, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr));
359-
PN2(void, MPI_Psend_init, mpi_psend_init, MPI_PSEND_INIT, (char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr));
358+
PN2(void, MPIX_Precv_init, mpix_precv_init, MPIX_PRECV_INIT, (char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *src, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr));
359+
PN2(void, MPIX_Psend_init, mpix_psend_init, MPIX_PSEND_INIT, (char *buf, MPI_Fint *partitions, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *info, MPI_Fint *request, MPI_Fint *ierr));
360360
PN2(void, MPI_Probe, mpi_probe, MPI_PROBE, (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr));
361361
PN2(void, MPI_Publish_name, mpi_publish_name, MPI_PUBLISH_NAME, (char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr, int service_name_len, int port_name_len));
362362
PN2(void, MPI_Put, mpi_put, MPI_PUT, (char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr));

0 commit comments

Comments
 (0)