[Darshan-commits] [Darshan] branch, dev-modular, updated. darshan-2.3.1-157-g168fe00
Service Account
git at mcs.anl.gov
Tue Aug 25 14:14:30 CDT 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, dev-modular has been updated
via 168fe00f798234d2da5bdd059939eb38f59f04c6 (commit)
from f42d933f17d04332649575a1206b2492c602d112 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 168fe00f798234d2da5bdd059939eb38f59f04c6
Author: Shane Snyder <ssnyder at mcs.anl.gov>
Date: Tue Aug 25 14:06:21 2015 -0500
port darshan-analyzer utility
-----------------------------------------------------------------------
Summary of changes:
darshan-util/darshan-analyzer.c | 98 +++++++++++++++++++++-----------------
1 files changed, 54 insertions(+), 44 deletions(-)
Diff of changes:
diff --git a/darshan-util/darshan-analyzer.c b/darshan-util/darshan-analyzer.c
index 409b480..a9be4b2 100644
--- a/darshan-util/darshan-analyzer.c
+++ b/darshan-util/darshan-analyzer.c
@@ -18,9 +18,8 @@
#define BUCKET3 0.60
#define BUCKET4 0.80
-char * base = NULL;
-
int total_shared = 0;
+int total_fpp = 0;
int total_mpio = 0;
int total_pnet = 0;
int total_hdf5 = 0;
@@ -31,78 +30,92 @@ int bucket2 = 0;
int bucket3 = 0;
int bucket4 = 0;
int bucket5 = 0;
-int fail = 0;
-int process_log(const char *fname, double *io_ratio, int *used_mpio, int *used_pnet, int *used_hdf5, int *used_shared)
+int process_log(const char *fname, double *io_ratio, int *used_mpio, int *used_pnet, int *used_hdf5, int *used_shared, int *used_fpp)
{
- darshan_fd zfile;
+ int ret;
+ darshan_fd file;
struct darshan_header header;
struct darshan_job job;
struct darshan_mod_logutil_funcs *psx_mod = mod_logutils[DARSHAN_POSIX_MOD];
- struct darshan_mod_logutil_funcs *mpiio_mod = mod_logutils[DARSHAN_MPIIO_MOD];
- struct darshan_mod_logutil_funcs *hdf5_mod = mod_logutils[DARSHAN_HDF5_MOD];
- struct darshan_mod_logutil_funcs *pnetcdf_mod = mod_logutils[DARSHAN_PNETCDF_MOD];
+ struct darshan_posix_file *psx_buf, *psx_buf_p;
+ int psx_buf_sz, psx_buf_bytes_left;
struct darshan_posix_file *psx_rec;
darshan_record_id rec_id;
- int ret;
int f_count;
double total_io_time;
double total_job_time;
assert(psx_mod);
- assert(mpiio_mod);
- assert(hdf5_mod);
- assert(pnetcdf_mod);
- zfile = darshan_log_open(fname);
- if (zfile == NULL)
+ file = darshan_log_open(fname);
+ if (file == NULL)
{
fprintf(stderr, "darshan_log_open() failed to open %s.\n", fname);
return -1;
}
-#if 0
- ret = darshan_log_getheader(zfile, &header);
+ ret = darshan_log_getheader(file, &header);
if (ret < 0)
{
fprintf(stderr, "darshan_log_getheader() failed on file %s.\n", fname);
- darshan_log_close(zfile);
+ darshan_log_close(file);
return -1;
}
- ret = darshan_log_getjob(zfile, &job);
+ ret = darshan_log_getjob(file, &job);
if (ret < 0)
{
fprintf(stderr, "darshan_log_getjob() failed on file %s.\n", fname);
- darshan_log_close(zfile);
+ darshan_log_close(file);
+ return -1;
+ }
+
+ psx_buf_sz = DARSHAN_DEF_COMP_BUF_SZ;
+ psx_buf = malloc(psx_buf_sz);
+ if (!psx_buf)
+ {
+ darshan_log_close(file);
+ return -1;
+ }
+
+ ret = darshan_log_getmod(file, DARSHAN_POSIX_MOD, (void *)psx_buf, &psx_buf_sz);
+ if (ret < 0)
+ {
+ fprintf(stderr, "darshan_log_getmod() failed on file %s.\n", fname);
+ darshan_log_close(file);
return -1;
}
f_count = 0;
total_io_time = 0.0;
- while ((ret = psx_mod->log_get_record(zfile, (void **)&psx_rec, &rec_id)) == 1)
+ psx_buf_bytes_left = psx_buf_sz;
+ psx_buf_p = psx_buf;
+ while(psx_buf_bytes_left)
{
- void *tmp_rec;
+ ret = psx_mod->log_get_record((void **)&psx_buf_p, &psx_buf_bytes_left,
+ (void **)&psx_rec, &rec_id, file->swap_flag);
+
f_count += 1;
if (psx_rec->rank == -1)
*used_shared = 1;
+ else
+ *used_fpp = 1;
-
- while((ret = mpiio_mod->log_get_record(
-
- *used_mpio += cp_file.counters[CP_INDEP_OPENS];
- *used_mpio += cp_file.counters[CP_COLL_OPENS];
- *used_pnet += cp_file.counters[CP_INDEP_NC_OPENS];
- *used_pnet += cp_file.counters[CP_COLL_NC_OPENS];
- *used_hdf5 += cp_file.counters[CP_HDF5_OPENS];
-
- total_io_time += cp_file.fcounters[CP_F_POSIX_READ_TIME];
- total_io_time += cp_file.fcounters[CP_F_POSIX_WRITE_TIME];
- total_io_time += cp_file.fcounters[CP_F_POSIX_META_TIME];
+ total_io_time += (psx_rec->fcounters[POSIX_F_READ_TIME] +
+ psx_rec->fcounters[POSIX_F_WRITE_TIME] +
+ psx_rec->fcounters[POSIX_F_META_TIME]);
}
+ if (header.mod_map[DARSHAN_MPIIO_MOD].len > 0)
+ *used_mpio += 1;
+ if (header.mod_map[DARSHAN_HDF5_MOD].len > 0)
+ *used_hdf5 += 1;
+ if (header.mod_map[DARSHAN_PNETCDF_MOD].len > 0)
+ *used_pnet += 1;
+
total_job_time = (double)job.end_time - (double)job.start_time;
if (total_job_time < 1.0)
{
@@ -117,9 +130,9 @@ int process_log(const char *fname, double *io_ratio, int *used_mpio, int *used_p
{
*io_ratio = 0.0;
}
-#endif
- darshan_log_close(zfile);
+ free(psx_buf);
+ darshan_log_close(file);
return 0;
}
@@ -131,18 +144,19 @@ int tree_walk (const char *fpath, const struct stat *sb, int typeflag)
int used_pnet = 0;
int used_hdf5 = 0;
int used_shared = 0;
+ int used_fpp = 0;
if (typeflag != FTW_F) return 0;
- process_log(fpath,&io_ratio,&used_mpio,&used_pnet,&used_hdf5,&used_shared);
+ process_log(fpath,&io_ratio,&used_mpio,&used_pnet,&used_hdf5,&used_shared,&used_fpp);
- /* XXX */
total_count++;
if (used_mpio > 0) total_mpio++;
if (used_pnet > 0) total_pnet++;
if (used_hdf5 > 0) total_hdf5++;
if (used_shared > 0) total_shared++;
+ if (used_fpp > 0) total_fpp++;
if (io_ratio <= BUCKET1)
bucket1++;
@@ -154,17 +168,13 @@ int tree_walk (const char *fpath, const struct stat *sb, int typeflag)
bucket4++;
else if (io_ratio > BUCKET4)
bucket5++;
- else
- {
- printf("iorat: %lf\n", io_ratio);
- fail++;
- }
return 0;
}
int main(int argc, char **argv)
{
+ char * base = NULL;
int ret = 0;
if(argc != 2)
@@ -182,10 +192,10 @@ int main(int argc, char **argv)
return(-1);
}
- /* XXX */
printf ("log dir: %s\n", base);
printf (" total: %d\n", total_count);
- printf (" single: %lf [%d]\n", (double)total_shared/(double)total_count, total_shared);
+ printf (" shared: %lf [%d]\n", (double)total_shared/(double)total_count, total_shared);
+ printf (" fpp: %lf [%d]\n", (double)total_fpp/(double)total_count, total_fpp);
printf (" mpio: %lf [%d]\n", (double)total_mpio/(double)total_count, total_mpio);
printf (" pnet: %lf [%d]\n", (double)total_pnet/(double)total_count, total_pnet);
printf (" hdf5: %lf [%d]\n", (double)total_hdf5/(double)total_count, total_hdf5);
hooks/post-receive
--
More information about the Darshan-commits
mailing list