Commit 8d135e0e authored by Philip Carns's avatar Philip Carns

avg. cumulative IO time in file list


git-svn-id: https://svn.mcs.anl.gov/repos/darshan/branches/darshan-parser-file-list@747 3b7491f3-a168-0410-bf4b-c445ed680a29
parent cf7d4ae5
...@@ -428,6 +428,7 @@ int main(int argc, char **argv) ...@@ -428,6 +428,7 @@ int main(int argc, char **argv)
hfile->procs = 0; hfile->procs = 0;
hfile->cumul_time = 0.0; hfile->cumul_time = 0.0;
hfile->meta_time = 0.0; hfile->meta_time = 0.0;
hfile->slowest_time = 0.0;
HASH_ADD(hlink,file_hash,hash,sizeof(int64_t),hfile); HASH_ADD(hlink,file_hash,hash,sizeof(int64_t),hfile);
} }
...@@ -615,6 +616,19 @@ void accum_file(struct darshan_job *job, ...@@ -615,6 +616,19 @@ void accum_file(struct darshan_job *job,
hfile->type |= FILETYPE_UNIQUE; hfile->type |= FILETYPE_UNIQUE;
} }
if(dfile->counters[CP_INDEP_OPENS] || dfile->counters[CP_COLL_OPENS])
{
hfile->cumul_time += dfile->fcounters[CP_F_MPI_META_TIME] +
dfile->fcounters[CP_F_MPI_READ_TIME] +
dfile->fcounters[CP_F_MPI_WRITE_TIME];
}
else
{
hfile->cumul_time += dfile->fcounters[CP_F_POSIX_META_TIME] +
dfile->fcounters[CP_F_POSIX_READ_TIME] +
dfile->fcounters[CP_F_POSIX_WRITE_TIME];
}
for (i = 0; i < CP_NUM_INDICES; i++) for (i = 0; i < CP_NUM_INDICES; i++)
{ {
switch(i) switch(i)
...@@ -762,8 +776,9 @@ void file_list(struct darshan_job *djob, hash_entry_t *file_hash, int detail_fla ...@@ -762,8 +776,9 @@ void file_list(struct darshan_job *djob, hash_entry_t *file_hash, int detail_fla
printf("# <type>: MPI or POSIX\n"); printf("# <type>: MPI or POSIX\n");
printf("# <nprocs>: number of processes that opened the file\n"); printf("# <nprocs>: number of processes that opened the file\n");
printf("# <slowest>: (estimated) time in seconds consumed in IO by slowest process.\n"); printf("# <slowest>: (estimated) time in seconds consumed in IO by slowest process.\n");
printf("# <avg>: average time in seconds consumed in IO per process.\n");
printf("\n# <hash>\t<suffix>\t<type>\t<nprocs>\t<slowest>\n"); printf("\n# <hash>\t<suffix>\t<type>\t<nprocs>\t<slowest>\t<avg>\n");
HASH_ITER(hlink, file_hash, curr, tmp) HASH_ITER(hlink, file_hash, curr, tmp)
{ {
if(curr->counters[CP_INDEP_OPENS] || curr->counters[CP_COLL_OPENS]) if(curr->counters[CP_INDEP_OPENS] || curr->counters[CP_COLL_OPENS])
...@@ -771,12 +786,13 @@ void file_list(struct darshan_job *djob, hash_entry_t *file_hash, int detail_fla ...@@ -771,12 +786,13 @@ void file_list(struct darshan_job *djob, hash_entry_t *file_hash, int detail_fla
else else
type = "POSIX"; type = "POSIX";
printf("%" PRIu64 "\t%s\t%s\t%" PRId64 "\t%f\n", printf("%" PRIu64 "\t%s\t%s\t%" PRId64 "\t%f\t%f\n",
curr->hash, curr->hash,
curr->name_suffix, curr->name_suffix,
type, type,
curr->procs, curr->procs,
curr->slowest_time); curr->slowest_time,
curr->cumul_time/(double)curr->procs);
} }
return; return;
...@@ -949,38 +965,19 @@ void accum_perf(struct darshan_file *dfile, ...@@ -949,38 +965,19 @@ void accum_perf(struct darshan_file *dfile,
{ {
if (mpi_file) if (mpi_file)
{ {
#if 0
hfile->cumul_time += dfile->fcounters[CP_F_MPI_META_TIME] +
dfile->fcounters[CP_F_MPI_READ_TIME] +
dfile->fcounters[CP_F_MPI_WRITE_TIME];
hfile->meta_time += dfile->fcounters[CP_F_MPI_META_TIME];
#else
pdata->rank_cumul_io_time[dfile->rank] += dfile->fcounters[CP_F_MPI_META_TIME] + pdata->rank_cumul_io_time[dfile->rank] += dfile->fcounters[CP_F_MPI_META_TIME] +
dfile->fcounters[CP_F_MPI_READ_TIME] + dfile->fcounters[CP_F_MPI_READ_TIME] +
dfile->fcounters[CP_F_MPI_WRITE_TIME]; dfile->fcounters[CP_F_MPI_WRITE_TIME];
pdata->rank_cumul_md_time[dfile->rank] += dfile->fcounters[CP_F_MPI_META_TIME]; pdata->rank_cumul_md_time[dfile->rank] += dfile->fcounters[CP_F_MPI_META_TIME];
#endif
} }
else else
{ {
#if 0
hfile->cumul_time += dfile->fcounters[CP_F_POSIX_META_TIME] +
dfile->fcounters[CP_F_POSIX_READ_TIME] +
dfile->fcounters[CP_F_POSIX_WRITE_TIME];
hfile->meta_time += dfile->fcounters[CP_F_POSIX_META_TIME];
#else
pdata->rank_cumul_io_time[dfile->rank] += dfile->fcounters[CP_F_POSIX_META_TIME] + pdata->rank_cumul_io_time[dfile->rank] += dfile->fcounters[CP_F_POSIX_META_TIME] +
dfile->fcounters[CP_F_POSIX_READ_TIME] + dfile->fcounters[CP_F_POSIX_READ_TIME] +
dfile->fcounters[CP_F_POSIX_WRITE_TIME]; dfile->fcounters[CP_F_POSIX_WRITE_TIME];
pdata->rank_cumul_md_time[dfile->rank] += dfile->fcounters[CP_F_POSIX_META_TIME]; pdata->rank_cumul_md_time[dfile->rank] += dfile->fcounters[CP_F_POSIX_META_TIME];
#endif
} }
#if 0
pdata->rank_cumul_io_time[dfile->rank] += hfile->cumul_time;
pdata->rank_cumul_md_time[dfile->rank] += hfile->meta_time;
#endif
} }
return; return;
......
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