Commit 58ae2da2 authored by Philip Carns's avatar Philip Carns
Browse files

record open counters in mpiio module

parent 5c5918aa
...@@ -12,15 +12,25 @@ enum darshan_mpiio_indices ...@@ -12,15 +12,25 @@ enum darshan_mpiio_indices
{ {
DARSHAN_MPIIO_INDEP_OPENS, /* independent opens */ DARSHAN_MPIIO_INDEP_OPENS, /* independent opens */
DARSHAN_MPIIO_COLL_OPENS, /* collective opens */ DARSHAN_MPIIO_COLL_OPENS, /* collective opens */
DARSHAN_MPIIO_HINTS, /* how many times hints were used */
DARSHAN_MPIIO_NUM_INDICES, DARSHAN_MPIIO_NUM_INDICES,
}; };
enum darshan_mpiio_f_indices
{
DARSHAN_MPIIO_F_META_TIME, /* cumulative metadata time */
DARSHAN_MPIIO_F_OPEN_TIMESTAMP, /* first open timestamp */
DARSHAN_MPIIO_F_NUM_INDICES,
};
struct darshan_mpiio_file struct darshan_mpiio_file
{ {
darshan_record_id f_id; darshan_record_id f_id;
int64_t rank; int64_t rank;
int64_t counters[DARSHAN_MPIIO_NUM_INDICES]; int64_t counters[DARSHAN_MPIIO_NUM_INDICES];
double fcounters[DARSHAN_MPIIO_F_NUM_INDICES];
}; };
#endif /* __DARSHAN_MPIIO_LOG_FORMAT_H */ #endif /* __DARSHAN_MPIIO_LOG_FORMAT_H */
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
struct mpiio_file_runtime struct mpiio_file_runtime
{ {
struct darshan_mpiio_file* file_record; struct darshan_mpiio_file* file_record;
double last_mpi_meta_end; /* end time of last MPI meta op (so far) */
/* TODO: any stateful (but not intended for persistent storage in the log) /* TODO: any stateful (but not intended for persistent storage in the log)
* information about MPI-IO access. If we don't have any then this struct * information about MPI-IO access. If we don't have any then this struct
* could be eliminated. * could be eliminated.
...@@ -153,33 +154,26 @@ int MPI_File_open(MPI_Comm comm, char *filename, int amode, MPI_Info info, MPI_F ...@@ -153,33 +154,26 @@ int MPI_File_open(MPI_Comm comm, char *filename, int amode, MPI_Info info, MPI_F
} }
file = mpiio_file_by_name_setfh(filename, fh); file = mpiio_file_by_name_setfh(filename, fh);
//printf("Hello world: got file ref %p\n", file);
/* TODO: record statistics */
#if 0
file = darshan_file_by_name_setfh(filename, (*fh));
if(file) if(file)
{ {
CP_SET(file, CP_MODE, amode); DARSHAN_COUNTER_F_INC_NO_OVERLAP(file->file_record, tm1, tm2, file->last_mpi_meta_end, DARSHAN_MPIIO_F_META_TIME);
CP_F_INC_NO_OVERLAP(file, tm1, tm2, file->last_mpi_meta_end, CP_F_MPI_META_TIME); if(DARSHAN_COUNTER_F_VALUE(file->file_record, DARSHAN_MPIIO_F_OPEN_TIMESTAMP) == 0)
if(CP_F_VALUE(file, CP_F_OPEN_TIMESTAMP) == 0) DARSHAN_COUNTER_F_SET(file->file_record, DARSHAN_MPIIO_F_OPEN_TIMESTAMP,
CP_F_SET(file, CP_F_OPEN_TIMESTAMP,
tm1); tm1);
DARSHAN_MPI_CALL(PMPI_Comm_size)(comm, &comm_size); DARSHAN_MPI_CALL(PMPI_Comm_size)(comm, &comm_size);
if(comm_size == 1) if(comm_size == 1)
{ {
CP_INC(file, CP_INDEP_OPENS, 1); DARSHAN_COUNTER_INC(file->file_record, DARSHAN_MPIIO_INDEP_OPENS, 1);
} }
else else
{ {
CP_INC(file, CP_COLL_OPENS, 1); DARSHAN_COUNTER_INC(file->file_record, DARSHAN_MPIIO_COLL_OPENS, 1);
} }
if(info != MPI_INFO_NULL) if(info != MPI_INFO_NULL)
{ {
CP_INC(file, CP_HINTS, 1); DARSHAN_COUNTER_INC(file->file_record, DARSHAN_MPIIO_HINTS, 1);
} }
} }
#endif
MPIIO_UNLOCK(); MPIIO_UNLOCK();
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment