Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 43 additions & 1 deletion darshan-runtime/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -770,6 +770,46 @@ if test "x$enable_darshan_runtime" = xyes ; then
[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])],
[AC_MSG_RESULT(no)]
)

dnl MPI_Count was first introduced in MPI 3.0. Check MPI-IOfunctions that make
dnl use of MPI_Count.
AC_CHECK_FUNCS([MPI_File_read_c \
MPI_File_read_all_c \
MPI_File_read_all_begin_c \
MPI_File_read_at_c \
MPI_File_read_at_all_c \
MPI_File_read_at_all_begin_c \
MPI_File_read_ordered_c \
MPI_File_read_ordered_begin_c \
MPI_File_read_shared_c \
MPI_File_write_c \
MPI_File_write_all_c \
MPI_File_write_all_begin_c \
MPI_File_write_at_c \
MPI_File_write_at_all_c \
MPI_File_write_at_all_begin_c \
MPI_File_write_ordered_c \
MPI_File_write_ordered_begin_c \
MPI_File_write_shared_c \
MPI_File_iread_c \
MPI_File_iread_all_c \
MPI_File_iread_at_c \
MPI_File_iread_at_all_c \
MPI_File_iread_shared_c \
MPI_File_iwrite_c \
MPI_File_iwrite_all_c \
MPI_File_iwrite_at_c \
MPI_File_iwrite_at_all_c \
MPI_File_iwrite_shared_c],
[have_mpi_io_large_count_apis=yes],
[have_mpi_io_large_count_apis=no])

if test "x$have_mpi_io_large_count_apis" = "xyes" ; then
AC_DEFINE(HAVE_MPI_LARGE_COUNT, 1,
[Define if MPI-IO support large count feature])
fi
else
have_mpi_io_large_count_apis=no
fi

#
Expand Down Expand Up @@ -833,6 +873,7 @@ else
enable_ldms_mod=no
with_log_path=
with_jobid_env=
have_mpi_io_large_count_apis=no
fi

AC_SUBST(ENABLE_LD_PRELOAD, ["$enable_ld_preload"])
Expand Down Expand Up @@ -972,5 +1013,6 @@ if test "x$enable_darshan_runtime" = xyes ; then
Log file env variables - $__log_path_by_env
Location of Darshan log files - $__log_path
Job ID env variable - $with_jobid_env
MPI-IO hints - $__DARSHAN_LOG_HINTS"
MPI-IO hints - $__DARSHAN_LOG_HINTS
MPI-IO large-count support - $have_mpi_io_large_count_apis"
fi
33 changes: 33 additions & 0 deletions darshan-runtime/lib/darshan-dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,39 @@ DARSHAN_EXTERN_DECL(PMPI_Gather, int, (const void *sendbuf, int sendcount, MPI_D
DARSHAN_EXTERN_DECL(PMPI_Gather, int, (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm));
#endif
DARSHAN_EXTERN_DECL(PMPI_Barrier, int, (MPI_Comm comm));

/* If MPI-IO supports large-count feature */
#ifdef HAVE_MPI_LARGE_COUNT
DARSHAN_EXTERN_DECL(PMPI_File_iread_all_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_at_all_c, int, (MPI_File fh, MPI_Offset offset, void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_at_c, int, (MPI_File fh, MPI_Offset offset, void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_shared_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_all_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at_all_c, int, (MPI_File fh, MPI_Offset offset, const void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at_c, int, (MPI_File fh, MPI_Offset offset, const void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_shared_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_read_all_begin_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_read_all_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_read_at_all_begin_c, int, (MPI_File fh, MPI_Offset offset, void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_read_at_all_c, int, (MPI_File fh, MPI_Offset offset, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_read_at_c, int, (MPI_File fh, MPI_Offset offset, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_read_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_read_ordered_begin_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_read_ordered_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_read_shared_c, int, (MPI_File fh, void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_all_begin_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_write_all_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_at_all_begin_c, int, (MPI_File fh, MPI_Offset offset, const void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_write_at_all_c, int, (MPI_File fh, MPI_Offset offset, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_at_c, int, (MPI_File fh, MPI_Offset offset, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_ordered_begin_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype));
DARSHAN_EXTERN_DECL(PMPI_File_write_ordered_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
DARSHAN_EXTERN_DECL(PMPI_File_write_shared_c, int, (MPI_File fh, const void *buf, MPI_Count count, MPI_Datatype datatype, MPI_Status *status));
#endif

#endif /* HAVE_MPI */

#endif
Expand Down
Loading