Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
91 changes: 87 additions & 4 deletions 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 @@ -749,7 +753,7 @@ int DARSHAN_DECL(MPI_File_read_all_begin)(MPI_File fh, void * buf, int count, MP

MAP_OR_FAIL(PMPI_File_read_all_begin);

MPI_File_get_position_shared(fh, &offset);
MPI_File_get_position(fh, &offset);
tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_read_all_begin(fh, buf, count, datatype);
tm2 = MPIIO_WTIME();
Expand All @@ -775,7 +779,7 @@ int DARSHAN_DECL(MPI_File_write_all_begin)(MPI_File fh, void * buf, int count, M

MAP_OR_FAIL(PMPI_File_write_all_begin);

MPI_File_get_position_shared(fh, &offset);
MPI_File_get_position(fh, &offset);

tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_write_all_begin(fh, buf, count, datatype);
Expand Down Expand Up @@ -912,7 +916,7 @@ int DARSHAN_DECL(MPI_File_iread)(MPI_File fh, void * buf, int count, MPI_Datatyp

MAP_OR_FAIL(PMPI_File_iread);

MPI_File_get_position_shared(fh, &offset);
MPI_File_get_position(fh, &offset);
tm1 = MPIIO_WTIME();
ret = __real_PMPI_File_iread(fh, buf, count, datatype, request);
tm2 = MPIIO_WTIME();
Expand All @@ -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(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