1
1

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>
Этот коммит содержится в:
KAWASHIMA Takahiro 2017-01-19 10:28:28 +09:00
родитель e69e99575e
Коммит 545e9af896
29 изменённых файлов: 494 добавлений и 0 удалений

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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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.

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

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 Обычный файл
Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

1
ompi/mpiext/pcollreq/c/MPIX_Scan_init.3in Обычный файл
Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

Просмотреть файл

@ -0,0 +1 @@
.so man3/MPIX_Barrier_init.3

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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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])
])