mpiext/pcollreq: Add MPIX_Bcast_init
etc.
Until the MPI Forum decides to add the persistent collective communication request feature to the MPI Standard, these functions are supported through MPI extensions with the `MPIX_` prefix. Only C bindings are supported currently. Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
Этот коммит содержится в:
родитель
e69e99575e
Коммит
545e9af896
2
.gitignore
поставляемый
2
.gitignore
поставляемый
@ -246,6 +246,8 @@ ompi/mpiext/example/tests/progress_usempif08
|
||||
ompi/mpiext/cuda/c/MPIX_Query_cuda_support.3
|
||||
ompi/mpiext/cuda/c/mpiext_cuda_c.h
|
||||
|
||||
ompi/mpiext/pcollreq/c/MPIX_*.3
|
||||
|
||||
ompi/tools/mpisync/mpisync
|
||||
ompi/tools/mpisync/mpirun_prof
|
||||
ompi/tools/mpisync/ompi_timing_post
|
||||
|
10
ompi/mpiext/pcollreq/Makefile.am
Обычный файл
10
ompi/mpiext/pcollreq/Makefile.am
Обычный файл
@ -0,0 +1,10 @@
|
||||
#
|
||||
# Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
SUBDIRS = c
|
13
ompi/mpiext/pcollreq/README.txt
Обычный файл
13
ompi/mpiext/pcollreq/README.txt
Обычный файл
@ -0,0 +1,13 @@
|
||||
Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
|
||||
|
||||
$COPYRIGHT$
|
||||
|
||||
This extension provides the feature of persistent collective communication
|
||||
operations and persistent neighborhood collective communication operations,
|
||||
which is proposed in the MPI Forum as of June 2018.
|
||||
|
||||
See MPIX_Barrier_init(3) for more details.
|
||||
|
||||
The code will be moved to the ompi/mpi directory and the MPIX_ prefix will
|
||||
be switch to the MPI_ prefix once the MPI Standard which includes this
|
||||
feature is published.
|
1
ompi/mpiext/pcollreq/c/MPIX_Allgather_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Allgather_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Allgatherv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Allgatherv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Allreduce_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Allreduce_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Alltoall_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Alltoall_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Alltoallv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Alltoallv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Alltoallw_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Alltoallw_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
157
ompi/mpiext/pcollreq/c/MPIX_Barrier_init.3in
Обычный файл
157
ompi/mpiext/pcollreq/c/MPIX_Barrier_init.3in
Обычный файл
@ -0,0 +1,157 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
|
||||
.\" $COPYRIGHT$
|
||||
.TH MPIX_Barrier_init 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||
.SH NAME
|
||||
\fBMPIX_Allgather_init, MPIX_Allgatherv_init, MPIX_Allreduce_init, MPIX_Alltoall_init, MPIX_Alltoallv_init, MPIX_Alltoallw_init, MPIX_Barrier_init, MPIX_Bcast_init, MPIX_Exscan_init, MPIX_Gather_init, MPIX_Gatherv_init, MPIX_Reduce_init, MPIX_Reduce_scatter_init, MPIX_Reduce_scatter_block_init, MPIX_Scan_init, MPIX_Scatter_init, MPIX_Scatterv_init, MPIX_Neighbor_allgather_init, MPIX_Neighbor_allgatherv_init, MPIX_Neighbor_alltoall_init, MPIX_Neighbor_alltoallv_init, MPIX_Neighbor_alltoallw_init\fP \- Builds a handle for a collective communication or neighborhood collective communication
|
||||
|
||||
.SH SYNTAX
|
||||
.ft R
|
||||
.SH C Syntax
|
||||
.nf
|
||||
#include <mpi.h>
|
||||
#include <mpi-ext.h>
|
||||
int MPIX_Allgather_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Allgatherv_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, const int \fIrecvcounts\fP[],
|
||||
const int \fIdispls\fP[], MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Allreduce_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Alltoall_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Alltoallv_init(const void *\fIsendbuf\fP, const int \fIsendcounts\fP[],
|
||||
const int \fIsdispls\fP[], MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP,
|
||||
const int \fIrecvcounts\fP[], const int \fIrdispls\fP[], MPI_Datatype \fIrecvtype\fP,
|
||||
MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Alltoallw_init(const void *\fIsendbuf\fP, const int \fIsendcounts\fP[],
|
||||
const int \fIsdispls\fP[], const MPI_Datatype \fIsendtypes\fP[], void *\fIrecvbuf\fP,
|
||||
const int \fIrecvcounts\fP[], const int \fIrdispls\fP[],
|
||||
const MPI_Datatype \fIrecvtypes\fP[], MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Barrier_init(MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Bcast_init(void *\fIbuffer\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP,
|
||||
int \fIroot\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Exscan_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Gather_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Gatherv_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, const int \fIrecvcounts\fP[],
|
||||
const int \fIdispls\fP[], MPI_Datatype \fIrecvtype\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Reduce_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Reduce_scatter_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP,
|
||||
const int \fIrecvcounts\fP[], MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP,
|
||||
MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Reduce_scatter_block_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP,
|
||||
int \fIrecvcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Scan_init(const void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Scatter_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Scatterv_init(const void *\fIsendbuf\fP, const int \fIsendcounts\fP[],
|
||||
const int \fIdispls\fP[], MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP,
|
||||
int \fIrecvcount\fP, MPI_Datatype \fIrecvtype\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Neighbor_allgather_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Neighbor_allgatherv_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, const int \fIrecvcounts\fP[],
|
||||
const int \fIdispls\fP[], MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP,
|
||||
MPI_Info \fIinfo\fP, MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Neighbor_alltoall_init(const void *\fIsendbuf\fP, int \fIsendcount\fP,
|
||||
MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
|
||||
MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Neighbor_alltoallv_init(const void *\fIsendbuf\fP,
|
||||
const int \fIsendcounts\fP[], const int \fIsdispls\fP[], MPI_Datatype \fIsendtype\fP,
|
||||
void *\fIrecvbuf\fP, const int \fIrecvcounts\fP[], const int \fIrdispls\fP[],
|
||||
MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
int MPIX_Neighbor_alltoallw_init(const void *\fIsendbuf\fP,
|
||||
const int \fIsendcounts\fP[], const MPI_Aint \fIsdispls\fP[],
|
||||
const MPI_Datatype \fIsendtypes\fP[], void *\fIrecvbuf\fP,
|
||||
const int \fIrecvcounts\fP[], const MPI_Aint \fIrdispls\fP[],
|
||||
const MPI_Datatype \fIrecvtypes\fP[], MPI_Comm \fIcomm\fP, MPI_Info \fIinfo\fP,
|
||||
MPI_Request *\fIrequest\fP)
|
||||
|
||||
.fi
|
||||
|
||||
.SH DESCRIPTION
|
||||
.ft R
|
||||
Creates a persistent communication request for a collective operation or neighborhood collective operation.
|
||||
|
||||
As of June 2018, the feature of persistent collective communication operations and persistent collective neighborhood communication operations is proposed in the MPI Forum.
|
||||
.nf
|
||||
|
||||
https://github.com/mpi-forum/mpi-issues/issues/25
|
||||
.fi
|
||||
|
||||
Open MPI implements its draft version shown in the following URL.
|
||||
.nf
|
||||
|
||||
https://github.com/mpi-forum/mpi-issues/files/2078076/mpi32-report-ticket25-austin-vote-june2018.pdf
|
||||
.fi
|
||||
|
||||
Because it is still in a draft stage, the interface may change in the standard. Therefore the prefix \fIMPIX_\fP is used instead of \fIMPI_\fP for these request creation functions. To start, complete, and free the created request, usual MPI functions (\fIMPI_Start\fP etc.) can be used. Only C bindings are available currently.
|
||||
|
||||
Future versions of Open MPI will switch to the \fIMPI_\fP prefix and will not require the header file \fImpi-ext.h\fP once the MPI Standard which includes this feature is published.
|
||||
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
|
||||
MPI_Request req;
|
||||
MPIX_Barrier_init(MPI_COMM_WORLD, MPI_INFO_NULL, &req);
|
||||
MPI_Start(&req);
|
||||
MPI_Wait(&req, MPI_STATUS_IGNORE);
|
||||
MPI_Request_free(&req);
|
||||
.fi
|
||||
|
||||
.SH SEE ALSO
|
||||
.ft R
|
||||
.sp
|
||||
MPI_Start
|
||||
.br
|
||||
MPI_Startall
|
||||
.br
|
||||
MPI_Request_free
|
1
ompi/mpiext/pcollreq/c/MPIX_Bcast_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Bcast_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Exscan_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Exscan_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Gather_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Gather_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Gatherv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Gatherv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_allgather_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_allgather_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_allgatherv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_allgatherv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoall_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoall_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoallv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoallv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoallw_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Neighbor_alltoallw_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_scatter_block_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_scatter_block_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_scatter_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Reduce_scatter_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Scan_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Scan_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Scatter_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Scatter_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
1
ompi/mpiext/pcollreq/c/MPIX_Scatterv_init.3in
Обычный файл
1
ompi/mpiext/pcollreq/c/MPIX_Scatterv_init.3in
Обычный файл
@ -0,0 +1 @@
|
||||
.so man3/MPIX_Barrier_init.3
|
63
ompi/mpiext/pcollreq/c/Makefile.am
Обычный файл
63
ompi/mpiext/pcollreq/c/Makefile.am
Обычный файл
@ -0,0 +1,63 @@
|
||||
#
|
||||
# Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# We must set these #defines so that the inner OMPI MPI prototype
|
||||
# header files do the Right Thing.
|
||||
AM_CPPFLAGS = -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_FORTRAN_WRAPPERS=1
|
||||
|
||||
include $(top_srcdir)/Makefile.ompi-rules
|
||||
|
||||
# Convenience libtool library that will be slurped up into libmpi.la.
|
||||
noinst_LTLIBRARIES = libmpiext_pcollreq_c.la
|
||||
|
||||
# This is where the top-level header file (that is included in
|
||||
# <mpi-ext.h>) must be installed.
|
||||
ompidir = $(ompiincludedir)/ompi/mpiext/pcollreq/c
|
||||
|
||||
# This is the header file that is installed.
|
||||
ompi_HEADERS = mpiext_pcollreq_c.h
|
||||
|
||||
# Sources for the convenience libtool library. Other than the one
|
||||
# header file, all source files in the extension have no file naming
|
||||
# conventions.
|
||||
libmpiext_pcollreq_c_la_SOURCES = \
|
||||
$(ompi_HEADERS) \
|
||||
mpiext_pcollreq.c
|
||||
libmpiext_pcollreq_c_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
# Man page installation
|
||||
nodist_man_MANS = \
|
||||
MPIX_Allgather_init.3 \
|
||||
MPIX_Allgatherv_init.3 \
|
||||
MPIX_Allreduce_init.3 \
|
||||
MPIX_Alltoall_init.3 \
|
||||
MPIX_Alltoallv_init.3 \
|
||||
MPIX_Alltoallw_init.3 \
|
||||
MPIX_Barrier_init.3 \
|
||||
MPIX_Bcast_init.3 \
|
||||
MPIX_Exscan_init.3 \
|
||||
MPIX_Gather_init.3 \
|
||||
MPIX_Gatherv_init.3 \
|
||||
MPIX_Reduce_init.3 \
|
||||
MPIX_Reduce_scatter_block_init.3 \
|
||||
MPIX_Reduce_scatter_init.3 \
|
||||
MPIX_Scan_init.3 \
|
||||
MPIX_Scatter_init.3 \
|
||||
MPIX_Scatterv_init.3 \
|
||||
MPIX_Neighbor_allgather_init.3 \
|
||||
MPIX_Neighbor_allgatherv_init.3 \
|
||||
MPIX_Neighbor_alltoall_init.3 \
|
||||
MPIX_Neighbor_alltoallv_init.3 \
|
||||
MPIX_Neighbor_alltoallw_init.3
|
||||
|
||||
# Man page sources
|
||||
EXTRA_DIST = $(nodist_man_MANS:.3=.3in)
|
||||
|
||||
distclean-local:
|
||||
rm -f $(nodist_man_MANS)
|
174
ompi/mpiext/pcollreq/c/mpiext_pcollreq.c
Обычный файл
174
ompi/mpiext/pcollreq/c/mpiext_pcollreq.c
Обычный файл
@ -0,0 +1,174 @@
|
||||
/*
|
||||
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
* Copyright (c) 2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "ompi/mca/coll/coll.h"
|
||||
#include "ompi/mca/coll/base/coll_base_functions.h"
|
||||
#include "ompi/communicator/communicator.h"
|
||||
|
||||
#include "mpiext_pcollreq_c.h"
|
||||
|
||||
#define INFO_REQ_ARGS ompi_info_t *info, ompi_request_t **request
|
||||
|
||||
int MPIX_Allgather_init(ALLGATHER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_allgather_init(
|
||||
ALLGATHER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_allgather_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Allgatherv_init(ALLGATHERV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_allgatherv_init(
|
||||
ALLGATHERV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_allgatherv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Allreduce_init(ALLREDUCE_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_allreduce_init(
|
||||
ALLREDUCE_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_allreduce_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Alltoall_init(ALLTOALL_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_alltoall_init(
|
||||
ALLTOALL_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_alltoall_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Alltoallv_init(ALLTOALLV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_alltoallv_init(
|
||||
ALLTOALLV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_alltoallv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Alltoallw_init(ALLTOALLW_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_alltoallw_init(
|
||||
ALLTOALLW_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_alltoallw_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Barrier_init(BARRIER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_barrier_init(
|
||||
BARRIER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_barrier_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Bcast_init(BCAST_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_bcast_init(
|
||||
BCAST_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_bcast_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Exscan_init(EXSCAN_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_exscan_init(
|
||||
EXSCAN_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_exscan_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Gather_init(GATHER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_gather_init(
|
||||
GATHER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_gather_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Gatherv_init(GATHERV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_gatherv_init(
|
||||
GATHERV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_gatherv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Reduce_init(REDUCE_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_reduce_init(
|
||||
REDUCE_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_reduce_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Reduce_scatter_init(REDUCESCATTER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_reduce_scatter_init(
|
||||
REDUCESCATTER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_reduce_scatter_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Reduce_scatter_block_init(REDUCESCATTERBLOCK_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_reduce_scatter_block_init(
|
||||
REDUCESCATTERBLOCK_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_reduce_scatter_block_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Scan_init(SCAN_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_scan_init(
|
||||
SCAN_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_scan_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Scatter_init(SCATTER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_scatter_init(
|
||||
SCATTER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_scatter_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Scatterv_init(SCATTERV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_scatterv_init(
|
||||
SCATTERV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_scatterv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Neighbor_allgather_init(NEIGHBOR_ALLGATHER_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_neighbor_allgather_init(
|
||||
NEIGHBOR_ALLGATHER_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_neighbor_allgather_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Neighbor_allgatherv_init(NEIGHBOR_ALLGATHERV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_neighbor_allgatherv_init(
|
||||
NEIGHBOR_ALLGATHERV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_neighbor_allgatherv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Neighbor_alltoall_init(NEIGHBOR_ALLTOALL_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_neighbor_alltoall_init(
|
||||
NEIGHBOR_ALLTOALL_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_neighbor_alltoall_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Neighbor_alltoallv_init(NEIGHBOR_ALLTOALLV_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_neighbor_alltoallv_init(
|
||||
NEIGHBOR_ALLTOALLV_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_neighbor_alltoallv_init_module);
|
||||
}
|
||||
|
||||
int MPIX_Neighbor_alltoallw_init(NEIGHBOR_ALLTOALLW_BASE_ARGS, INFO_REQ_ARGS)
|
||||
{
|
||||
return comm->c_coll->coll_neighbor_alltoallw_init(
|
||||
NEIGHBOR_ALLTOALLW_BASE_ARG_NAMES, info, request,
|
||||
comm->c_coll->coll_neighbor_alltoallw_init_module);
|
||||
}
|
33
ompi/mpiext/pcollreq/c/mpiext_pcollreq_c.h
Обычный файл
33
ompi/mpiext/pcollreq/c/mpiext_pcollreq_c.h
Обычный файл
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Allreduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Alltoallw_init(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Barrier_init(MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Bcast_init(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Exscan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Gatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_init(const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Reduce_scatter_block_init(const void *sendbuf, void *recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scan_init(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatter_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Scatterv_init(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgather_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_allgatherv_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoall_init(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPIX_Neighbor_alltoallw_init(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request);
|
21
ompi/mpiext/pcollreq/configure.m4
Обычный файл
21
ompi/mpiext/pcollreq/configure.m4
Обычный файл
@ -0,0 +1,21 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# OMPI_MPIEXT_pcollreq_CONFIG([action-if-found], [action-if-not-found])
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([OMPI_MPIEXT_pcollreq_CONFIG],[
|
||||
AC_CONFIG_FILES([ompi/mpiext/pcollreq/Makefile])
|
||||
AC_CONFIG_FILES([ompi/mpiext/pcollreq/c/Makefile])
|
||||
|
||||
AS_IF([test "$ENABLE_pcollreq" = "1" || \
|
||||
test "$ENABLE_EXT_ALL" = "1"],
|
||||
[$1],
|
||||
[$2])
|
||||
])
|
Загрузка…
Ссылка в новой задаче
Block a user