From a71a94f4712e9aee08e17794ac45200ebf94bacf Mon Sep 17 00:00:00 2001 From: Chris Chambreau Date: Thu, 28 Sep 2023 14:33:15 -0700 Subject: [PATCH] Initial MPI 4.0 features --- Makefile.in | 1 + configure | 115 ++++++++++++++++++++++++++++++++++++- configure.ac | 77 ++++++++++++++++++++++++- make-wrappers.py | 106 ++++++++++++++++++++++++++++++++++ mpi.isendrecv.protos.txt | 6 ++ mpi.partitioned.protos.txt | 13 +++++ mpi.pcoll.protos.txt | 35 +++++++++++ mpi.protos.txt.in | 4 +- mpiPconfig.h.in | 23 +++++--- 9 files changed, 369 insertions(+), 11 deletions(-) create mode 100644 mpi.isendrecv.protos.txt create mode 100644 mpi.partitioned.protos.txt create mode 100644 mpi.pcoll.protos.txt diff --git a/Makefile.in b/Makefile.in index 76c233e..923543b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -118,6 +118,7 @@ endif ${C_TARGET}:: ${OBJS} ${AR} ruv $@ ${OBJS} ${RANLIB} $@ + rm -f pc_lookup.o ${FORTRAN_TARGET}:: ${FOBJS} ${AR} ruv $@ ${FOBJS} diff --git a/configure b/configure index 9fb2ac9..c903470 100755 --- a/configure +++ b/configure @@ -667,6 +667,9 @@ MPIP_INTERNAL_STACK_DEPTH MPIP_CALLSITE_REPORT_STACK_DEPTH_MAX ENABLE_FORTRAN_WEAK_SYMS ENABLE_FORTRAN_XLATE +ENABLE_MPI_PARTITIONED +ENABLE_MPI_ISENDRECV +ENABLE_MPI_PERSISTENTCOLLECTIVES ENABLE_MPI_NONBLOCKINGCOLLECTIVES ENABLE_MPI_RMA ENABLE_MPI_IO @@ -729,7 +732,10 @@ SHELL' ac_subst_files='FORTRAN_GETARG HAVE_MPI_IO HAVE_MPI_RMA -HAVE_MPI_NONBLOCKINGCOLLECTIVES' +HAVE_MPI_NONBLOCKINGCOLLECTIVES +HAVE_MPI_PERSISTENTCOLLECTIVES +HAVE_MPI_ISENDRECV +HAVE_MPI_PARTITIONED' ac_user_opts=' enable_option_checking with_cc @@ -752,6 +758,9 @@ enable_api_only enable_mpi_io enable_mpi_rma enable_mpi_nbc +enable_mpi_pcoll +enable_mpi_isendrecv +enable_mpi_partitioned enable_bfd enable_libunwind enable_so_lookup @@ -1397,6 +1406,10 @@ Optional Features: --disable-mpi-io Disable MPI-I/O reporting. --disable-mpi-rma Disable MPI RMA reporting. --disable-mpi-nbc Disable MPI NONBLOCKINGCOLLECTIVES reporting. + --disable-mpi-pcoll Disable MPI PERSISTENTCOLLECTIVES reporting. + --disable-mpi-isendrecv Disable MPI ISENDRECV reporting. + --disable-mpi-partitioned + Disable MPI PARTITIONED reporting. --disable-bfd Do not use GNU binutils libbfd for source lookup. --disable-libunwind Do not use libunwind to generate stack traces. --disable-so-lookup Disable functionality to attempt to find source info @@ -3007,6 +3020,44 @@ if test "${enable_mpi_nbc+set}" = set; then : fi + +ENABLE_MPI_PERSISTENTCOLLECTIVES=yes +# Check whether --enable-mpi-pcoll was given. +if test "${enable_mpi_pcoll+set}" = set; then : + enableval=$enable_mpi_pcoll; if test x"$enableval" = xno ; then + ENABLE_MPI_PERSISTENTCOLLECTIVES=no + echo Profiling of MPI PERSISTENTCOLLECTIVES has been disabled. + fi + +fi + + + + +ENABLE_MPI_ISENDRECV=yes +# Check whether --enable-mpi-isendrecv was given. +if test "${enable_mpi_isendrecv+set}" = set; then : + enableval=$enable_mpi_isendrecv; if test x"$enableval" = xno ; then + ENABLE_MPI_ISENDRECV=no + echo Profiling of MPI ISENDRECV has been disabled. + fi + +fi + + + +ENABLE_MPI_PARTITIONED=yes +# Check whether --enable-mpi-partitioned was given. +if test "${enable_mpi_partitioned+set}" = set; then : + enableval=$enable_mpi_partitioned; if test x"$enableval" = xno ; then + ENABLE_MPI_PARTITIONED=no + echo Profiling of MPI PARTITIONED has been disabled. + fi + +fi + + + fi ENABLE_BFD=yes @@ -5835,6 +5886,60 @@ else HAVE_MPI_NONBLOCKINGCOLLECTIVES=/dev/null fi +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_PERSISTENTCOLLECTIVES" = xyes ; then +ac_fn_c_check_func "$LINENO" "MPI_Barrier_init" "ac_cv_func_MPI_Barrier_init" +if test "x$ac_cv_func_MPI_Barrier_init" = xyes; then : + +$as_echo "#define HAVE_MPI_PERSISTENTCOLLECTIVES 1" >>confdefs.h + HAVE_MPI_PERSISTENTCOLLECTIVES=mpi.pcoll.protos.txt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: MPI PERSISTENTCOLLECTIVES symbols not found. MPI PERSISTENTCOLLECTIVES reporting deactivated." >&5 +$as_echo "MPI PERSISTENTCOLLECTIVES symbols not found. MPI PERSISTENTCOLLECTIVES reporting deactivated." >&6; } + HAVE_MPI_PERSISTENTCOLLECTIVES=/dev/null + ENABLE_MPI_PERSISTENTCOLLECTIVES=no + +fi + +else + HAVE_MPI_PERSISTENTCOLLECTIVES=/dev/null +fi + +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_ISENDRECV" = xyes ; then +ac_fn_c_check_func "$LINENO" "MPI_Isendrecv" "ac_cv_func_MPI_Isendrecv" +if test "x$ac_cv_func_MPI_Isendrecv" = xyes; then : + +$as_echo "#define HAVE_MPI_ISENDRECV 1" >>confdefs.h + HAVE_MPI_ISENDRECV=mpi.isendrecv.protos.txt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: MPI ISENDRECV symbols not found. MPI ISENDRECV reporting deactivated." >&5 +$as_echo "MPI ISENDRECV symbols not found. MPI ISENDRECV reporting deactivated." >&6; } + HAVE_MPI_ISENDRECV=/dev/null + ENABLE_MPI_ISENDRECV=no + +fi + +else + HAVE_MPI_ISENDRECV=/dev/null +fi + +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_PARTITIONED" = xyes ; then +ac_fn_c_check_func "$LINENO" "MPI_Psend_init" "ac_cv_func_MPI_Psend_init" +if test "x$ac_cv_func_MPI_Psend_init" = xyes; then : + +$as_echo "#define HAVE_MPI_PARTITIONED 1" >>confdefs.h + HAVE_MPI_PARTITIONED=mpi.partitioned.protos.txt +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: MPI PARTITIONED symbols not found. MPI PARTITIONED reporting deactivated." >&5 +$as_echo "MPI PARTITIONED symbols not found. MPI PARTITIONED reporting deactivated." >&6; } + HAVE_MPI_PARTITIONED=/dev/null + ENABLE_MPI_PARTITIONED=no + +fi + +else + HAVE_MPI_PARTITIONED=/dev/null +fi + if test "x$DISABLE_SO_LOOKUP" = "xno" && test "x$ENABLE_BFD" = xyes; then SO_LOOKUP=no # Check for /proc/self/maps, can't use AC_CHECK_FILES since cross compiling @@ -6216,7 +6321,7 @@ $as_echo "Failed to compile fortran test object. Example error follows:" >&6; } $as_echo "$as_me: $F77_OBJ_OUT" >&6;} as_fn_error $? "giving up" "$LINENO" 5 fi - echo "main(){ FF(); return 0; }" > flink.c + echo "extern void FF(); int main(){ FF(); return 0; }" > flink.c if $CC -o flink -DFF=f_fun flink.c ffunc.o $LDFLAGS $LIBS 1>/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: same as C" >&5 $as_echo "same as C" >&6; } @@ -6352,6 +6457,9 @@ ENABLE_BFD=$ENABLE_BFD + + + if test "x${slibdir}" = x ; then slibdir=$libdir fi @@ -7619,4 +7727,7 @@ echo echo " MPI-I/O support : ${ENABLE_MPI_IO}" echo " MPI-RMA support : ${ENABLE_MPI_RMA}" echo " MPI-NBC support : ${ENABLE_MPI_NONBLOCKINGCOLLECTIVES}" +echo " MPI-PC support : ${ENABLE_MPI_PERSISTENTCOLLECTIVES}" +echo " MPI-Isendrecv support : ${ENABLE_MPI_ISENDRECV}" +echo " MPI-Partitioned support : ${ENABLE_MPI_PARTITIONED}" echo "********************************************************************************" diff --git a/configure.ac b/configure.ac index 53579d3..fc56c24 100644 --- a/configure.ac +++ b/configure.ac @@ -213,6 +213,42 @@ AC_ARG_ENABLE(mpi-nbc, , ) AC_SUBST(ENABLE_MPI_NONBLOCKINGCOLLECTIVES) + +ENABLE_MPI_PERSISTENTCOLLECTIVES=yes +AC_ARG_ENABLE(mpi-pcoll, + AS_HELP_STRING(--disable-mpi-pcoll,[Disable MPI PERSISTENTCOLLECTIVES reporting.]), + if test x"$enableval" = xno ; then + ENABLE_MPI_PERSISTENTCOLLECTIVES=no + echo Profiling of MPI PERSISTENTCOLLECTIVES has been disabled. + fi + , +) +AC_SUBST(ENABLE_MPI_PERSISTENTCOLLECTIVES) + + +ENABLE_MPI_ISENDRECV=yes +AC_ARG_ENABLE(mpi-isendrecv, + AS_HELP_STRING(--disable-mpi-isendrecv,[Disable MPI ISENDRECV reporting.]), + if test x"$enableval" = xno ; then + ENABLE_MPI_ISENDRECV=no + echo Profiling of MPI ISENDRECV has been disabled. + fi + , +) +AC_SUBST(ENABLE_MPI_ISENDRECV) + +ENABLE_MPI_PARTITIONED=yes +AC_ARG_ENABLE(mpi-partitioned, + AS_HELP_STRING(--disable-mpi-partitioned,[Disable MPI PARTITIONED reporting.]), + if test x"$enableval" = xno ; then + ENABLE_MPI_PARTITIONED=no + echo Profiling of MPI PARTITIONED has been disabled. + fi + , +) +AC_SUBST(ENABLE_MPI_PARTITIONED) + +dnl end of API conditional fi ENABLE_BFD=yes @@ -609,6 +645,39 @@ else HAVE_MPI_NONBLOCKINGCOLLECTIVES=/dev/null fi +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_PERSISTENTCOLLECTIVES" = xyes ; then +AC_CHECK_FUNC(MPI_Barrier_init, + AC_DEFINE([HAVE_MPI_PERSISTENTCOLLECTIVES],[1],[Have MPI persistent collectives]) HAVE_MPI_PERSISTENTCOLLECTIVES=mpi.pcoll.protos.txt, + AC_MSG_RESULT([MPI PERSISTENTCOLLECTIVES symbols not found. MPI PERSISTENTCOLLECTIVES reporting deactivated.]) + HAVE_MPI_PERSISTENTCOLLECTIVES=/dev/null + ENABLE_MPI_PERSISTENTCOLLECTIVES=no +) +else + HAVE_MPI_PERSISTENTCOLLECTIVES=/dev/null +fi + +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_ISENDRECV" = xyes ; then +AC_CHECK_FUNC(MPI_Isendrecv, + AC_DEFINE([HAVE_MPI_ISENDRECV],[1],[Have MPI Isendrecv]) HAVE_MPI_ISENDRECV=mpi.isendrecv.protos.txt, + AC_MSG_RESULT([MPI ISENDRECV symbols not found. MPI ISENDRECV reporting deactivated.]) + HAVE_MPI_ISENDRECV=/dev/null + ENABLE_MPI_ISENDRECV=no +) +else + HAVE_MPI_ISENDRECV=/dev/null +fi + +if test "x$ENABLE_API_ONLY" = xno && test "x$ENABLE_MPI_PARTITIONED" = xyes ; then +AC_CHECK_FUNC(MPI_Psend_init, + AC_DEFINE([HAVE_MPI_PARTITIONED],[1],[Have MPI Psend_init]) HAVE_MPI_PARTITIONED=mpi.partitioned.protos.txt, + AC_MSG_RESULT([MPI PARTITIONED symbols not found. MPI PARTITIONED reporting deactivated.]) + HAVE_MPI_PARTITIONED=/dev/null + ENABLE_MPI_PARTITIONED=no +) +else + HAVE_MPI_PARTITIONED=/dev/null +fi + if test "x$DISABLE_SO_LOOKUP" = "xno" && test "x$ENABLE_BFD" = xyes; then SO_LOOKUP=no # Check for /proc/self/maps, can't use AC_CHECK_FILES since cross compiling @@ -703,7 +772,7 @@ if test -n "$F77" -a "$F77" != no ; then AC_MSG_NOTICE($F77_OBJ_OUT) AC_MSG_ERROR([giving up]) fi - echo "main(){ FF(); return 0; }" > flink.c + echo "extern void FF(); int main(){ FF(); return 0; }" > flink.c if $CC -o flink -DFF=f_fun flink.c ffunc.o $LDFLAGS $LIBS 1>/dev/null 2>/dev/null; then AC_MSG_RESULT(same as C) F77_SYMBOLS=symbol @@ -817,6 +886,9 @@ AC_SUBST(MPIP_COPIED_ARGS_MAX) AC_SUBST_FILE(HAVE_MPI_IO) AC_SUBST_FILE(HAVE_MPI_RMA) AC_SUBST_FILE(HAVE_MPI_NONBLOCKINGCOLLECTIVES) +AC_SUBST_FILE(HAVE_MPI_PERSISTENTCOLLECTIVES) +AC_SUBST_FILE(HAVE_MPI_ISENDRECV) +AC_SUBST_FILE(HAVE_MPI_PARTITIONED) AC_SUBST_FILE(FORTRAN_GETARG) if test "x${slibdir}" = x ; then @@ -847,4 +919,7 @@ echo echo " MPI-I/O support : ${ENABLE_MPI_IO}" echo " MPI-RMA support : ${ENABLE_MPI_RMA}" echo " MPI-NBC support : ${ENABLE_MPI_NONBLOCKINGCOLLECTIVES}" +echo " MPI-PC support : ${ENABLE_MPI_PERSISTENTCOLLECTIVES}" +echo " MPI-Isendrecv support : ${ENABLE_MPI_ISENDRECV}" +echo " MPI-Partitioned support : ${ENABLE_MPI_PARTITIONED}" echo "********************************************************************************" diff --git a/make-wrappers.py b/make-wrappers.py index 809d0e4..ee7df8c 100755 --- a/make-wrappers.py +++ b/make-wrappers.py @@ -33,8 +33,12 @@ ( "MPI_Allgather", "sendcount"):1, ( "MPI_Allgather", "sendtype"):2, + ( "MPI_Allgather_init", "sendcount"):1, + ( "MPI_Allgather_init", "sendtype"):2, ( "MPI_Allgatherv", "sendcount"):1, ( "MPI_Allgatherv", "sendtype"):2, + ( "MPI_Allgatherv_init", "sendcount"):1, + ( "MPI_Allgatherv_init", "sendtype"):2, ( "MPI_Allreduce", "count"):1, ( "MPI_Allreduce", "datatype"):2, ( "MPI_Alltoall", "sendcount"):1, @@ -166,21 +170,58 @@ ("MPI_Allgather", "comm"):"MPI_Comm", ("MPI_Allgather", "recvtype"):"MPI_Datatype", ("MPI_Allgather", "sendtype"):"MPI_Datatype", + ("MPI_Allgather_init", "comm"):"MPI_Comm", + ("MPI_Allgather_init", "recvtype"):"MPI_Datatype", + ("MPI_Allgather_init", "sendtype"):"MPI_Datatype", + ("MPI_Allgather_init", "info"):"MPI_Info", + ("MPI_Allgather_init", "request"):"MPI_Request", ("MPI_Allgatherv", "comm"):"MPI_Comm", ("MPI_Allgatherv", "recvtype"):"MPI_Datatype", ("MPI_Allgatherv", "sendtype"):"MPI_Datatype", + ("MPI_Allgatherv_init", "comm"):"MPI_Comm", + ("MPI_Allgatherv_init", "recvtype"):"MPI_Datatype", + ("MPI_Allgatherv_init", "sendtype"):"MPI_Datatype", + ("MPI_Allgatherv_init", "info"):"MPI_Info", + ("MPI_Allgatherv_init", "request"):"MPI_Request", ("MPI_Allreduce", "comm"):"MPI_Comm", ("MPI_Allreduce", "datatype"):"MPI_Datatype", ("MPI_Allreduce", "op"):"MPI_Op", + ("MPI_Allreduce_init", "comm"):"MPI_Comm", + ("MPI_Allreduce_init", "datatype"):"MPI_Datatype", + ("MPI_Allreduce_init", "op"):"MPI_Op", + ("MPI_Allreduce_init", "info"):"MPI_Info", + ("MPI_Allreduce_init", "request"):"MPI_Request", ("MPI_Alltoall", "comm"):"MPI_Comm", ("MPI_Alltoall", "recvtype"):"MPI_Datatype", ("MPI_Alltoall", "sendtype"):"MPI_Datatype", + ("MPI_Alltoall_init", "comm"):"MPI_Comm", + ("MPI_Alltoall_init", "recvtype"):"MPI_Datatype", + ("MPI_Alltoall_init", "sendtype"):"MPI_Datatype", + ("MPI_Alltoall_init", "info"):"MPI_Info", + ("MPI_Alltoall_init", "request"):"MPI_Request", ("MPI_Alltoallv", "comm"):"MPI_Comm", ("MPI_Alltoallv", "recvtype"):"MPI_Datatype", ("MPI_Alltoallv", "sendtype"):"MPI_Datatype", + ("MPI_Alltoallv_init", "comm"):"MPI_Comm", + ("MPI_Alltoallv_init", "recvtype"):"MPI_Datatype", + ("MPI_Alltoallv_init", "sendtype"):"MPI_Datatype", + ("MPI_Alltoallv_init", "info"):"MPI_Info", + ("MPI_Alltoallv_init", "request"):"MPI_Request", + ("MPI_Alltoallw_init", "comm"):"MPI_Comm", + ("MPI_Alltoallw_init", "recvtype"):"MPI_Datatype", + ("MPI_Alltoallw_init", "sendtype"):"MPI_Datatype", + ("MPI_Alltoallw_init", "info"):"MPI_Info", + ("MPI_Alltoallw_init", "request"):"MPI_Request", ("MPI_Barrier", "comm"):"MPI_Comm", + ("MPI_Barrier_init", "comm"):"MPI_Comm", + ("MPI_Barrier_init", "info"):"MPI_Info", + ("MPI_Barrier_init", "request"):"MPI_Request", ("MPI_Bcast", "datatype"):"MPI_Datatype", ("MPI_Bcast", "comm"):"MPI_Comm", + ("MPI_Bcast_init", "datatype"):"MPI_Datatype", + ("MPI_Bcast_init", "comm"):"MPI_Comm", + ("MPI_Bcast_init", "info"):"MPI_Info", + ("MPI_Bcast_init", "request"):"MPI_Request", ("MPI_Bsend", "comm"):"MPI_Comm", ("MPI_Bsend", "datatype"):"MPI_Datatype", ("MPI_Bsend_init", "comm"):"MPI_Comm", @@ -214,6 +255,11 @@ ("MPI_Compare_and_swap", "win"):"MPI_Win", ("MPI_Comm_get_errhandler", "comm"):"MPI_Comm", ("MPI_Comm_set_errhandler", "comm"):"MPI_Comm", + ("MPI_Exscan_init", "datatype"):"MPI_Datatype", + ("MPI_Exscan_init", "op"):"MPI_Op", + ("MPI_Exscan_init", "comm"):"MPI_Comm", + ("MPI_Exscan_init", "info"):"MPI_Info", + ("MPI_Exscan_init", "request"):"MPI_Request", ("MPI_Fetch_and_op", "datatype"):"MPI_Datatype", ("MPI_Fetch_and_op", "op"):"MPI_Op", ("MPI_Fetch_and_op", "win"):"MPI_Win", @@ -257,9 +303,19 @@ ("MPI_Gather", "comm"):"MPI_Comm", ("MPI_Gather", "recvtype"):"MPI_Datatype", ("MPI_Gather", "sendtype"):"MPI_Datatype", + ("MPI_Gather_init", "comm"):"MPI_Comm", + ("MPI_Gather_init", "recvtype"):"MPI_Datatype", + ("MPI_Gather_init", "sendtype"):"MPI_Datatype", + ("MPI_Gather_init", "info"):"MPI_Info", + ("MPI_Gather_init", "request"):"MPI_Request", ("MPI_Gatherv", "comm"):"MPI_Comm", ("MPI_Gatherv", "recvtype"):"MPI_Datatype", ("MPI_Gatherv", "sendtype"):"MPI_Datatype", + ("MPI_Gatherv_init", "comm"):"MPI_Comm", + ("MPI_Gatherv_init", "recvtype"):"MPI_Datatype", + ("MPI_Gatherv_init", "sendtype"):"MPI_Datatype", + ("MPI_Gatherv_init", "info"):"MPI_Info", + ("MPI_Gatherv_init", "request"):"MPI_Request", ("MPI_Get", "origin_datatype"):"MPI_Datatype", ("MPI_Get", "target_datatype"):"MPI_Datatype", ("MPI_Get", "win"):"MPI_Win", @@ -353,12 +409,32 @@ ("MPI_Iscatterv", "comm"):"MPI_Comm", ("MPI_Isend", "comm"):"MPI_Comm", ("MPI_Isend", "datatype"):"MPI_Datatype", + ("MPI_Isendrecv", "comm"):"MPI_Comm", + ("MPI_Isendrecv", "recvtag"):"MPI_Datatype", + ("MPI_Isendrecv", "recvtype"):"MPI_Datatype", + ("MPI_Isendrecv", "sendtype"):"MPI_Datatype", + ("MPI_Isendrecv", "request"):"MPI_Request", + ("MPI_Isendrecv_replace", "comm"):"MPI_Comm", + ("MPI_Isendrecv_replace", "datatype"):"MPI_Datatype", + ("MPI_Isendrecv_replace", "request"):"MPI_Request", ("MPI_Issend", "comm"):"MPI_Comm", ("MPI_Issend", "datatype"):"MPI_Datatype", ("MPI_Pack", "comm"):"MPI_Comm", ("MPI_Pack", "datatype"):"MPI_Datatype", ("MPI_Pack_size", "comm"):"MPI_Comm", ("MPI_Pack_size", "datatype"):"MPI_Datatype", + ("MPI_Parrived", "request"):"MPI_Request", + ("MPI_Pready", "request"):"MPI_Request", + ("MPI_Pready_list", "request"):"MPI_Request", + ("MPI_Pready_range", "request"):"MPI_Request", + ("MPI_Precv_init", "datatype"):"MPI_Datatype", + ("MPI_Precv_init", "comm"):"MPI_Comm", + ("MPI_Precv_init", "info"):"MPI_Info", + ("MPI_Precv_init", "request"):"MPI_Request", + ("MPI_Psend_init", "datatype"):"MPI_Datatype", + ("MPI_Psend_init", "comm"):"MPI_Comm", + ("MPI_Psend_init", "info"):"MPI_Info", + ("MPI_Psend_init", "request"):"MPI_Request", ("MPI_Probe", "comm"):"MPI_Comm", ("MPI_Put", "origin_datatype"):"MPI_Datatype", ("MPI_Put", "target_datatype"):"MPI_Datatype", @@ -375,9 +451,24 @@ ("MPI_Reduce", "comm"):"MPI_Comm", ("MPI_Reduce", "datatype"):"MPI_Datatype", ("MPI_Reduce", "op"):"MPI_Op", + ("MPI_Reduce_init", "comm"):"MPI_Comm", + ("MPI_Reduce_init", "datatype"):"MPI_Datatype", + ("MPI_Reduce_init", "op"):"MPI_Op", + ("MPI_Reduce_init", "info"):"MPI_Info", + ("MPI_Reduce_init", "request"):"MPI_Request", ("MPI_Reduce_scatter", "comm"):"MPI_Comm", ("MPI_Reduce_scatter", "datatype"):"MPI_Datatype", ("MPI_Reduce_scatter", "op"):"MPI_Op", + ("MPI_Reduce_scatter_init", "datatype"):"MPI_Datatype", + ("MPI_Reduce_scatter_init", "op"):"MPI_Op", + ("MPI_Reduce_scatter_init", "comm"):"MPI_Comm", + ("MPI_Reduce_scatter_init", "info"):"MPI_Info", + ("MPI_Reduce_scatter_init", "request"):"MPI_Request", + ("MPI_Reduce_scatter_block_init", "datatype"):"MPI_Datatype", + ("MPI_Reduce_scatter_block_init", "op"):"MPI_Op", + ("MPI_Reduce_scatter_block_init", "comm"):"MPI_Comm", + ("MPI_Reduce_scatter_block_init", "info"):"MPI_Info", + ("MPI_Reduce_scatter_block_init", "request"):"MPI_Request", ("MPI_Request_free", "request"):"MPI_Request", ("MPI_Rget", "origin_datatype"):"MPI_Datatype", ("MPI_Rget", "target_datatype"):"MPI_Datatype", @@ -400,12 +491,27 @@ ("MPI_Scan", "comm"):"MPI_Comm", ("MPI_Scan", "op"):"MPI_Op", ("MPI_Scan", "datatype"):"MPI_Datatype", + ("MPI_Scan_init", "datatype"):"MPI_Datatype", + ("MPI_Scan_init", "op"):"MPI_Op", + ("MPI_Scan_init", "comm"):"MPI_Comm", + ("MPI_Scan_init", "info"):"MPI_Info", + ("MPI_Scan_init", "request"):"MPI_Request", ("MPI_Scatter", "comm"):"MPI_Comm", ("MPI_Scatter", "recvtype"):"MPI_Datatype", ("MPI_Scatter", "sendtype"):"MPI_Datatype", + ("MPI_Scatter_init", "comm"):"MPI_Comm", + ("MPI_Scatter_init", "recvtype"):"MPI_Datatype", + ("MPI_Scatter_init", "sendtype"):"MPI_Datatype", + ("MPI_Scatter_init", "info"):"MPI_Info", + ("MPI_Scatter_init", "request"):"MPI_Request", ("MPI_Scatterv", "comm"):"MPI_Comm", ("MPI_Scatterv", "recvtype"):"MPI_Datatype", ("MPI_Scatterv", "sendtype"):"MPI_Datatype", + ("MPI_Scatterv_init", "comm"):"MPI_Comm", + ("MPI_Scatterv_init", "recvtype"):"MPI_Datatype", + ("MPI_Scatterv_init", "sendtype"):"MPI_Datatype", + ("MPI_Scatterv_init", "info"):"MPI_Info", + ("MPI_Scatterv_init", "request"):"MPI_Request", ("MPI_Send", "comm"):"MPI_Comm", ("MPI_Send", "datatype"):"MPI_Datatype", ("MPI_Send_init", "comm"):"MPI_Comm", diff --git a/mpi.isendrecv.protos.txt b/mpi.isendrecv.protos.txt new file mode 100644 index 0000000..5ce0d8e --- /dev/null +++ b/mpi.isendrecv.protos.txt @@ -0,0 +1,6 @@ +@@@ MPI Isendrecv functions + +int MPI_Isendrecv ( mpip_const_void_t *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Request *request ) + +int MPI_Isendrecv_replace ( void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Request *request ) + diff --git a/mpi.partitioned.protos.txt b/mpi.partitioned.protos.txt new file mode 100644 index 0000000..ea4ee00 --- /dev/null +++ b/mpi.partitioned.protos.txt @@ -0,0 +1,13 @@ +@@@ MPI Partitioned Communication functions + +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 ) + +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 ) + +int MPI_Pready ( int partitions, MPI_Request request ) + +int MPI_Pready_range ( int partition_low, int partition_high, MPI_Request request ) + +int MPI_Pready_list ( int length, int partition_list[], MPI_Request request ) + +int MPI_Parrived ( MPI_Request request, int partition, int *flag ) diff --git a/mpi.pcoll.protos.txt b/mpi.pcoll.protos.txt new file mode 100644 index 0000000..2642307 --- /dev/null +++ b/mpi.pcoll.protos.txt @@ -0,0 +1,35 @@ +@@@ MPI persistent collective functions + +int MPI_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 ) + +int MPI_Allgatherv_init ( const void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, mpip_const_int_t recvcounts[], mpip_const_int_t displs[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request* request ) + +int MPI_Allreduce_init ( const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_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 ) + +int MPI_Alltoallv_init ( const void* sendbuf, mpip_const_int_t sendcounts[], mpip_const_int_t sdispls[], MPI_Datatype sendtype, void* recvbuf, mpip_const_int_t recvcounts[], mpip_const_int_t rdispls[], MPI_Datatype recvtype, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_Alltoallw_init ( const void* sendbuf, mpip_const_int_t sendcounts[], mpip_const_int_t sdispls[], mpip_const_datatype_t sendtypes[], void* recvbuf, mpip_const_int_t recvcounts[], mpip_const_int_t rdispls[], mpip_const_datatype_t recvtypes[], MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_Barrier_init ( MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_Bcast_init ( void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_Exscan_init ( const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_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) + +int MPI_Gatherv_init ( const void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, mpip_const_int_t recvcounts[], mpip_const_int_t displs[], MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_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 ) + +int MPI_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 ) + +int MPI_Reduce_scatter_init ( const void* sendbuf, void* recvbuf, mpip_const_int_t recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_Scan_init ( const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Info info, MPI_Request *request ) + +int MPI_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 ) + +int MPI_Scatterv_init ( const void* sendbuf, mpip_const_int_t sendcounts[], mpip_const_int_t displs[], MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm, MPI_Info info, MPI_Request *request ) diff --git a/mpi.protos.txt.in b/mpi.protos.txt.in index be214a4..4e7a444 100644 --- a/mpi.protos.txt.in +++ b/mpi.protos.txt.in @@ -421,4 +421,6 @@ int MPI_Waitsome ( int incount, MPI_Request *array_of_requests, int *count, int @HAVE_MPI_IO@ @HAVE_MPI_RMA@ @HAVE_MPI_NONBLOCKINGCOLLECTIVES@ - +@HAVE_MPI_PERSISTENTCOLLECTIVES@ +@HAVE_MPI_ISENDRECV@ +@HAVE_MPI_PARTITIONED@ diff --git a/mpiPconfig.h.in b/mpiPconfig.h.in index 467e425..09baa93 100644 --- a/mpiPconfig.h.in +++ b/mpiPconfig.h.in @@ -18,18 +18,18 @@ /* F77 symbols */ #undef F77_SYMBOLS -/* ARM LSE */ +/* Using a processor with LSE */ #undef HAVE_ARM_LSE /* BFD booleans */ #undef HAVE_BFD_BOOLEAN +/* BFD get section macros */ +#undef HAVE_BFD_GET_SECTION_MACROS + /* BFD get section size */ #undef HAVE_BFD_GET_SECTION_SIZE -/* BFD macros available before version 2.34 */ -#undef HAVE_BFD_GET_SECTION_MACROS - /* Have demangling */ #undef HAVE_DEMANGLE_H @@ -51,9 +51,18 @@ /* Have MPI-IO */ #undef HAVE_MPI_IO +/* Have MPI Isendrecv */ +#undef HAVE_MPI_ISENDRECV + /* Have MPI non-blocking collectives */ #undef HAVE_MPI_NONBLOCKINGCOLLECTIVES +/* Have MPI Psend_init */ +#undef HAVE_MPI_PARTITIONED + +/* Have MPI persistent collectives */ +#undef HAVE_MPI_PERSISTENTCOLLECTIVES + /* Have MPI RMA */ #undef HAVE_MPI_RMA @@ -81,9 +90,6 @@ /* Stack depth of callsites in report */ #undef MPIP_CALLSITE_REPORT_STACK_DEPTH_MAX -/* Internal stack frames */ -#undef MPIP_INTERNAL_STACK_DEPTH - /* Recorded stack depth of callsites */ #undef MPIP_CALLSITE_STACK_DEPTH_MAX @@ -93,6 +99,9 @@ /* Maximum number of command line arguments copied */ #undef MPIP_COPIED_ARGS_MAX +/* Number of internal stack frames */ +#undef MPIP_INTERNAL_STACK_DEPTH + /* Need Real-time declaration */ #undef NEED_MREAD_REAL_TIME_DECL