[Darshan-commits] [Darshan] branch, more-pnetcdf, updated. 979c2d047fab9b6ae36ff26850d37dd1106a148c

Service Account git at mcs.anl.gov
Mon Sep 15 10:50:07 CDT 2014


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, more-pnetcdf has been updated
       via  979c2d047fab9b6ae36ff26850d37dd1106a148c (commit)
      from  6229921042db39654312faf48630f465d4a76900 (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 979c2d047fab9b6ae36ff26850d37dd1106a148c
Author: Rob Latham <robl at mcs.anl.gov>
Date:   Mon Sep 15 10:48:37 2014 -0500

    pick up some long-lost stragglers from the svn branch

-----------------------------------------------------------------------

Summary of changes:
 darshan-log-format.h  |    1 +
 lib/darshan-pnetcdf.c |  257 ++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 253 insertions(+), 5 deletions(-)


Diff of changes:
diff --git a/darshan-log-format.h b/darshan-log-format.h
index 308f959..20c349d 100644
--- a/darshan-log-format.h
+++ b/darshan-log-format.h
@@ -213,6 +213,7 @@ enum f_darshan_indices
     CP_F_VARIANCE_RANK_BYTES,
     CP_F_NC_READ_TIME,
     CP_F_NC_WRITE_TIME,
+    CP_F_NC_META_TIME,
 
     CP_F_NUM_INDICES,
 };
diff --git a/lib/darshan-pnetcdf.c b/lib/darshan-pnetcdf.c
index 5f756ab..f4c8d1c 100644
--- a/lib/darshan-pnetcdf.c
+++ b/lib/darshan-pnetcdf.c
@@ -10,34 +10,84 @@
 #include "darshan.h"
 #include "darshan-config.h"
 
+#define NC_NOERR 0
+
+typedef enum {
+        NC_NAT =        0,      /* NAT = 'Not A Type' (c.f. NaN) */
+        NC_BYTE =       1,      /* signed 1 byte integer */
+        NC_CHAR =       2,      /* ISO/ASCII character */
+        NC_SHORT =      3,      /* signed 2 byte integer */
+        NC_INT =        4,      /* signed 4 byte integer */
+        NC_FLOAT =      5,      /* single precision floating point number */
+        NC_DOUBLE =     6       /* double precision floating point number */
+} nc_type;
+
+typedef nc_type ncmpi_type;
+
+
 extern int __real_ncmpi_create(MPI_Comm comm, const char *path, 
     int cmode, MPI_Info info, int *ncidp);
 extern int __real_ncmpi_open(MPI_Comm comm, const char *path, 
     int omode, MPI_Info info, int *ncidp);
 extern int __real_ncmpi_close(int ncid);
 
+/* nonblocking interfaces */
 extern int __real_ncmpi_iput_vara(int ncid, int varid,
                 const MPI_Offset *start, const MPI_Offset *count,
                 const void *buf, MPI_Offset bufcount, MPI_Datatype datatype,
                 int *reqid);
+
+extern int __real_ncmpi_wait_all(int  ncid, int  num_reqs,
+		int *req_ids, int *statuses);
+
+/* blocking interfaces */
 extern int __real_ncmpi_put_vara_all(int ncid, int varid,
                    const MPI_Offset  start[], const MPI_Offset  count[],
                    const void *buf, MPI_Offset bufcount,
                    MPI_Datatype datatype);
 
-extern int __real_ncmpi_put_vara_int_all(int ncid, int varid, 
-    const MPI_Offset  start[], const MPI_Offset  count[], 
+extern int __real_ncmpi_put_vara_double_all(int ncid, int varid,
+        const MPI_Offset start[],
+        const MPI_Offset count[], const double *op);
+
+extern int __real_ncmpi_put_vara_int_all(int ncid, int varid,
+    const MPI_Offset  start[], const MPI_Offset  count[],
     const void *buf);
 
-extern int __real_ncmpi_wait_all(int  ncid, int  num_reqs, 
-		int *req_ids, int *statuses);
+extern int __real_ncmpi_put_vara_float_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const float *op);
+
+extern int __real_ncmpi_put_vars_double_all(int ncid, int varid,
+        const MPI_Offset start[],
+        const MPI_Offset count[], const MPI_Offset stride[], const double *op);
+
+extern int __real_ncmpi_put_vars_float_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const MPI_Offset stride[], const float *op);
+
+/* define-mode functions */
+extern int __real_ncmpi_enddef(int ncid);
+extern int __real_ncmpi_def_dim(int ncid, const char *name, MPI_Offset size, int *dimidp);
+
+extern int __real_ncmpi_def_var(int ncid, const char *name, nc_type type,
+        int ndims, const int *dimids, int *varidp);
+
+/* inquiry functions */
+extern int __real_ncmpi_get_att_double(int ncid, int varid, const char *name, double *tp);
+extern int __real_ncmpi_get_att_int(int ncid, int varid, const char *name, int *tp);
+extern int __real_ncmpi_get_att_text(int ncid, int varid, const char *name, char *str);
 
 static int nr_writes=0;
 static int nr_reads=0;
 
 static struct darshan_file_runtime* darshan_file_by_ncid(int ncid);
 
-#define NC_NOERR 0
+
+#define CP_RECORD_PNETCDF_META(__ret, __ncid, __tim1, __tim2) do {\
+    struct darshan_file_runtime *file;\
+    if (__ret != NC_NOERR) break;\
+    file = darshan_file_by_ncid(__ncid);\
+    CP_F_INC(file, CP_F_NC_META_TIME, (__tim2-__tim1));\
+} while (0)
 
 #define CP_RECORD_PNETCDF_WRITE(__ret, __ncid, __tim1, __tim2) do {\
 	struct darshan_file_runtime*file;\
@@ -63,8 +113,11 @@ int __wrap_ncmpi_create(MPI_Comm comm, const char *path,
     char* tmp;
     int comm_size;
     int hash_index;
+    double tm1, tm2;
 
+    tm1 = darshan_wtime();
     ret = __real_ncmpi_create(comm, path, cmode, info, ncidp);
+    tm2 = darshan_wtime();
     if(ret == 0)
     {  
         CP_LOCK();
@@ -84,6 +137,8 @@ int __wrap_ncmpi_create(MPI_Comm comm, const char *path,
         {
             file->ncid = *ncidp;
 
+            CP_F_INC(file, CP_F_MPI_META_TIME, (tm2-tm1));
+
             PMPI_Comm_size(comm, &comm_size);
             if(comm_size == 1)
             {
@@ -136,6 +191,8 @@ int __wrap_ncmpi_open(MPI_Comm comm, const char *path,
         {
             file->ncid = *ncidp;
 
+            CP_F_INC(file, CP_F_MPI_META_TIME, (tm2-tm1));
+
             PMPI_Comm_size(comm, &comm_size);
             if(comm_size == 1)
             {
@@ -166,13 +223,17 @@ int __wrap_ncmpi_close(int ncid)
     int hash_index;
     int tmp_ncid = ncid;
     int ret;
+    double tm1, tm2;
 
+    tm1 = darshan_wtime();
     ret = __real_ncmpi_close(ncid);
+    tm2 = darshan_wtime();
 
     CP_LOCK();
     file = darshan_file_by_ncid(ncid);
     if(file)
     {
+        CP_F_INC(file, CP_F_NC_META_TIME, (tm2-tm1));
         file->ncid = -1;
         if(file->ncid_prev == NULL)
         {
@@ -216,6 +277,67 @@ int __wrap_ncmpi_put_vara_all(int ncid, int varid,
     return (ret);
 }
 
+int __wrap_ncmpi_put_vara_double_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const double *op)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_put_vara_double_all(ncid, varid, start, count, op);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_WRITE(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+
+int __wrap_ncmpi_put_vara_float_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const float *op)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_put_vara_float_all(ncid, varid, start, count, op);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_WRITE(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+int __wrap_ncmpi_put_vars_double_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const MPI_Offset stride[], const double *op)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_put_vars_double_all(ncid, varid, start, count, stride, op);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_WRITE(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+
+int __wrap_ncmpi_put_vars_float_all(int ncid, int varid, const MPI_Offset start[],
+        const MPI_Offset count[], const MPI_Offset stride[], const float *op)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_put_vars_float_all(ncid, varid, start, count, stride, op);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_WRITE(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+
+
+
 int __wrap_ncmpi_put_vara_int_all(int ncid, int varid, 
     const MPI_Offset  start[], const MPI_Offset  count[], 
     const void *buf)
@@ -232,6 +354,51 @@ int __wrap_ncmpi_put_vara_int_all(int ncid, int varid,
     return (ret);
 }
 
+int __wrap_ncmpi_get_vara_all(int ncid, int varid,
+    const MPI_Offset  start[], const MPI_Offset  count[],
+    const void *buf, MPI_Offset bufcount, MPI_Datatype datatype)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_vara_all(ncid, varid, start, count, buf, bufcount,
+                    datatype);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_READ(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+
+int __wrap_ncmpi_get_vara_double_all(int ncid, int varid,
+    const MPI_Offset  start[], const MPI_Offset  count[], double *ip)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_vara_double_all(ncid, varid, start, count, ip);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_READ(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
+int __wrap_ncmpi_get_vara_int_all(int ncid, int varid,
+    const MPI_Offset  start[], const MPI_Offset  count[], double *ip)
+{
+    int ret;
+    double tm1, tm2;
+
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_vara_double_all(ncid, varid, start, count, ip);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_READ(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+    return (ret);
+}
 
 int __wrap_ncmpi_iput_vara(int ncid, int varid,
                 const MPI_Offset *start, const MPI_Offset *count,
@@ -292,6 +459,86 @@ int __wrap_ncmpi_wait_all(int  ncid,
 
     return ret;
 }
+int __wrap_ncmpi_def_dim(int ncid, const char *name, MPI_Offset size, int *dimidp)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_def_dim(ncid, name, size, dimidp);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
+int __wrap_ncmpi_def_var(int ncid, const char *name, nc_type type,
+        int ndims, const int *dimids, int *varidp)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_def_var(ncid, name, type, ndims, dimids, varidp);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
+int __wrap_ncmpi_enddef(int ncid)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_enddef(ncid);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
+
+int __wrap_ncmpi_get_att_double(int ncid, int varid, const char *name, double *tp)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_att_double(ncid, varid, name, tp);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
+int __wrap_ncmpi_get_att_int(int ncid, int varid, const char *name, int *tp)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_att_int(ncid, varid, name, tp);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
+int __wrap_ncmpi_get_att_text(int ncid, int varid, const char *name, char *str)
+{
+    double tm1, tm2;
+    int ret;
+    tm1 = darshan_wtime();
+    ret = __real_ncmpi_get_att_text(ncid, varid, name, str);
+    tm2 = darshan_wtime();
+    CP_LOCK();
+    CP_RECORD_PNETCDF_META(ret, ncid, tm1, tm2);
+    CP_UNLOCK();
+
+    return (ret);
+}
 
 static struct darshan_file_runtime* darshan_file_by_ncid(int ncid)
 {


hooks/post-receive
--



More information about the Darshan-commits mailing list