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
6 changes: 5 additions & 1 deletion darshan-runtime/lib/darshan-dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@

#ifdef HAVE_MPI
DARSHAN_EXTERN_DECL(PMPI_File_close, int, (MPI_File *fh));
DARSHAN_EXTERN_DECL(PMPI_File_iread, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_all, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_at, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_at_all, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iread_shared, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#ifdef HAVE_MPI_CONST
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at, int, (MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#else
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_EXTERN_DECL(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#endif
#ifdef HAVE_MPI_CONST
DARSHAN_EXTERN_DECL(PMPI_File_iwrite, int, (MPI_File fh, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
Expand Down
85 changes: 84 additions & 1 deletion darshan-runtime/lib/darshan-mpiio.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,17 @@
#include "darshan-ldms.h"

DARSHAN_FORWARD_DECL(PMPI_File_close, int, (MPI_File *fh));
DARSHAN_FORWARD_DECL(PMPI_File_iread_at, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iread, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iread_all, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iread_at, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iread_at_all, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iread_shared, int, (MPI_File fh, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#ifdef HAVE_MPI_CONST
DARSHAN_FORWARD_DECL(PMPI_File_iwrite_at, int, (MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#else
DARSHAN_FORWARD_DECL(PMPI_File_iwrite_at, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
DARSHAN_FORWARD_DECL(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
#endif
#ifdef HAVE_MPI_CONST
DARSHAN_FORWARD_DECL(PMPI_File_iwrite, int, (MPI_File fh, const void *buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST *request));
Expand Down Expand Up @@ -926,6 +930,28 @@ int DARSHAN_DECL(MPI_File_iread)(MPI_File fh, void * buf, int count, MPI_Datatyp
DARSHAN_WRAPPER_MAP(PMPI_File_iread, int, (MPI_File fh, void * buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST * request),
MPI_File_iread)

int DARSHAN_DECL(MPI_File_iread_all)(MPI_File fh, void * buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST * request)
{
int ret;
double tm1, tm2;
MPI_Offset offset;

MAP_OR_FAIL(PMPI_File_iread_all);

MPI_File_get_position_shared(fh, &offset);
tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_iread_all(fh, buf, count, datatype, request);
tm2 = MPIIO_WTIME();

MPIIO_PRE_RECORD();
MPIIO_RECORD_READ(ret, fh, count, datatype, offset, MPIIO_NB_READS, tm1, tm2);
MPIIO_POST_RECORD();

return(ret);
}
DARSHAN_WRAPPER_MAP(PMPI_File_iread_all, int, (MPI_File fh, void * buf, int count, MPI_Datatype datatype, __D_MPI_REQUEST * request),
MPI_File_iread_all)

#ifdef HAVE_MPI_CONST
int DARSHAN_DECL(MPI_File_iwrite)(MPI_File fh, const void * buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST * request)
Expand Down Expand Up @@ -984,6 +1010,29 @@ DARSHAN_WRAPPER_MAP(PMPI_File_iread_at, int, (MPI_File fh, MPI_Offset offset, vo
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request),
MPI_File_iread_at)

int DARSHAN_DECL(MPI_File_iread_at_all)(MPI_File fh, MPI_Offset offset, void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request)
{
int ret;
double tm1, tm2;

MAP_OR_FAIL(PMPI_File_iread_at_all);

tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_iread_at_all(fh, offset, buf, count,
datatype, request);
tm2 = MPIIO_WTIME();

MPIIO_PRE_RECORD();
MPIIO_RECORD_READ(ret, fh, count, datatype, offset, MPIIO_NB_READS, tm1, tm2);
MPIIO_POST_RECORD();

return(ret);
}
DARSHAN_WRAPPER_MAP(PMPI_File_iread_at_all, int, (MPI_File fh, MPI_Offset offset, void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request),
MPI_File_iread_at_all)

#ifdef HAVE_MPI_CONST
int DARSHAN_DECL(MPI_File_iwrite_at)(MPI_File fh, MPI_Offset offset, const void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request)
Expand Down Expand Up @@ -1018,6 +1067,40 @@ DARSHAN_WRAPPER_MAP(PMPI_File_iwrite_at, int, (MPI_File fh, MPI_Offset offset, v
MPI_File_iwrite_at)
#endif

#ifdef HAVE_MPI_CONST
int DARSHAN_DECL(MPI_File_iwrite_at_all)(MPI_File fh, MPI_Offset offset, const void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request)
#else
int DARSHAN_DECL(MPI_File_iwrite_at_all)(MPI_File fh, MPI_Offset offset, void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request)
#endif
{
int ret;
double tm1, tm2;

MAP_OR_FAIL(PMPI_File_iwrite_at_all);

tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_iwrite_at_all(fh, offset, buf,
count, datatype, request);
tm2 = MPIIO_WTIME();

MPIIO_PRE_RECORD();
MPIIO_RECORD_WRITE(ret, fh, count, datatype, offset, MPIIO_NB_WRITES, tm1, tm2);
MPIIO_POST_RECORD();

return(ret);
}
#ifdef HAVE_MPI_CONST
DARSHAN_WRAPPER_MAP(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, const void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request),
MPI_File_iwrite_at_all)
#else
DARSHAN_WRAPPER_MAP(PMPI_File_iwrite_at_all, int, (MPI_File fh, MPI_Offset offset, void * buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request),
MPI_File_iwrite_at_all)
#endif

int DARSHAN_DECL(MPI_File_iread_shared)(MPI_File fh, void * buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST * request)
{
Expand Down
8 changes: 8 additions & 0 deletions darshan-runtime/share/ld-opts/darshan-mpiio-ld-opts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
--wrap=MPI_File_set_view
--wrap=MPI_File_sync
--wrap=MPI_File_iread
--wrap=MPI_File_iread_all
--wrap=MPI_File_iread_at
--wrap=MPI_File_iread_at_all
--wrap=MPI_File_iread_shared
--wrap=MPI_File_read
--wrap=MPI_File_read_all
Expand All @@ -15,7 +17,9 @@
--wrap=MPI_File_read_ordered_begin
--wrap=MPI_File_read_shared
--wrap=MPI_File_iwrite
--wrap=MPI_File_iwrite_all
--wrap=MPI_File_iwrite_at
--wrap=MPI_File_iwrite_at_all
--wrap=MPI_File_iwrite_shared
--wrap=MPI_File_write
--wrap=MPI_File_write_all
Expand All @@ -31,7 +35,9 @@
--wrap=PMPI_File_set_view
--wrap=PMPI_File_sync
--wrap=PMPI_File_iread
--wrap=PMPI_File_iread_all
--wrap=PMPI_File_iread_at
--wrap=PMPI_File_iread_at_all
--wrap=PMPI_File_iread_shared
--wrap=PMPI_File_read
--wrap=PMPI_File_read_all
Expand All @@ -43,7 +49,9 @@
--wrap=PMPI_File_read_ordered_begin
--wrap=PMPI_File_read_shared
--wrap=PMPI_File_iwrite
--wrap=PMPI_File_iwrite_all
--wrap=PMPI_File_iwrite_at
--wrap=PMPI_File_iwrite_at_all
--wrap=PMPI_File_iwrite_shared
--wrap=PMPI_File_write
--wrap=PMPI_File_write_all
Expand Down