[Darshan-commits] [Git][darshan/darshan][autoperf-mod-update] APMPI misc updates

Sudheer Chunduri xgitlab at cels.anl.gov
Tue Jan 12 17:17:31 CST 2021



Sudheer Chunduri pushed to branch autoperf-mod-update at darshan / darshan


Commits:
d8960f70 by Sudheer Chunduri at 2021-01-10T18:59:19+00:00
APMPI misc updates

- - - - -


12 changed files:

- darshan-log-format.h
- darshan-runtime/Makefile.in
- darshan-runtime/configure
- darshan-runtime/configure.in
- darshan-runtime/darshan-dynamic.h
- darshan-runtime/lib/darshan-core.c
- darshan-runtime/share/ld-opts/darshan-base-ld-opts.in
- darshan-util/Makefile.in
- darshan-util/configure
- darshan-util/configure.in
- darshan-util/darshan-logutils.h
- modules/autoperf


Changes:

=====================================
darshan-log-format.h
=====================================
@@ -123,6 +123,9 @@ struct darshan_base_record
 #ifdef DARSHAN_USE_APXC
 #include "darshan-apxc-log-format.h"
 #endif
+#ifdef DARSHAN_USE_APMPI
+#include "darshan-apmpi-log-format.h"
+#endif
 
 /* X-macro for keeping module ordering consistent */
 /* NOTE: first val used to define module enum values, 
@@ -145,6 +148,13 @@ struct darshan_base_record
 #define __DARSHAN_APXC_VER 0
 #define __apxc_logutils NULL
 #endif
+#ifdef DARSHAN_USE_APMPI
+#define __DARSHAN_APMPI_VER DARSHAN_APMPI_VER
+#define __apmpi_logutils &apmpi_logutils
+#else
+#define __DARSHAN_APMPI_VER 0
+#define __apmpi_logutils NULL
+#endif
 
 #define DARSHAN_MODULE_IDS \
     X(DARSHAN_NULL_MOD,     "NULL",     DARSHAN_NULL_VER,       NULL) \
@@ -159,7 +169,8 @@ struct darshan_base_record
     X(DXT_POSIX_MOD,       "DXT_POSIX",  DXT_POSIX_VER,         &dxt_posix_logutils) \
     X(DXT_MPIIO_MOD,       "DXT_MPIIO",  DXT_MPIIO_VER,         &dxt_mpiio_logutils) \
     X(DARSHAN_MDHIM_MOD,   "MDHIM",      DARSHAN_MDHIM_VER,     &mdhim_logutils) \
-    X(DARSHAN_APXC_MOD,    "DARSHAN_APXC", __DARSHAN_APXC_VER,  __apxc_logutils) 
+    X(DARSHAN_APXC_MOD,    "DARSHAN_APXC", __DARSHAN_APXC_VER,  __apxc_logutils) \
+    X(DARSHAN_APMPI_MOD,    "DARSHAN_APMPI", __DARSHAN_APMPI_VER,  __apmpi_logutils) 
 
 /* unique identifiers to distinguish between available darshan modules */
 /* NOTES: - valid ids range from [0...DARSHAN_MAX_MODS-1]


=====================================
darshan-runtime/Makefile.in
=====================================
@@ -17,6 +17,7 @@ DISABLE_STATIC_LIB = @DISABLE_STATIC_LIB@
 DISABLE_LDPRELOAD = @DISABLE_LDPRELOAD@
 ENABLE_MMAP_LOGS = @ENABLE_MMAP_LOGS@
 DARSHAN_USE_APXC = @DARSHAN_USE_APXC@
+DARSHAN_USE_APMPI = @DARSHAN_USE_APMPI@
 DARSHAN_LOG_FORMAT = $(srcdir)/../darshan-log-format.h
 DARSHAN_VERSION = @DARSHAN_VERSION@
 
@@ -45,6 +46,7 @@ BUILD_HDF5_MODULE = @BUILD_HDF5_MODULE@
 BUILD_BGQ_MODULE = @BUILD_BGQ_MODULE@
 BUILD_LUSTRE_MODULE = @BUILD_LUSTRE_MODULE@
 BUILD_MDHIM_MODULE = @BUILD_MDHIM_MODULE@
+BUILD_APMPI_MODULE = @BUILD_APMPI_MODULE@
 
 DARSHAN_STATIC_MOD_OBJS =
 DARSHAN_DYNAMIC_MOD_OBJS =
@@ -108,6 +110,9 @@ endif
 ifdef DARSHAN_USE_APXC
 include $(srcdir)/../modules/autoperf/crayxc/Makefile.darshan
 endif
+ifdef DARSHAN_USE_APMPI
+include $(srcdir)/../modules/autoperf/apmpi/Makefile.darshan
+endif
 
 lib::
 	@mkdir -p $@
@@ -255,6 +260,9 @@ endif
 ifdef BUILD_MDHIM_MODULE
 	install -m 644 $(srcdir)/share/ld-opts/darshan-mdhim-ld-opts $(DESTDIR)$(datarootdir)/ld-opts/darshan-mdhim-ld-opts
 endif
+ifdef BUILD_APMPI_MODULE
+	install -m 644 $(srcdir)/../modules/autoperf/apmpi/share/ld-opts/autoperf-apmpi-ld-opts $(DESTDIR)$(datarootdir)/ld-opts/autoperf-apmpi-ld-opts
+endif
 ifdef ENABLE_MMAP_LOGS
 	install -m 755 share/darshan-mmap-epilog.sh $(DESTDIR)$(datarootdir)/darshan-mmap-epilog.sh
 endif


=====================================
darshan-runtime/configure
=====================================
@@ -630,6 +630,9 @@ DARSHAN_HDF5_LD_FLAGS
 DARSHAN_HDF5_ADD_DFLUSH_LD_OPTS
 DARSHAN_HDF5_LD_OPTS
 BUILD_HDF5_MODULE
+AUTOPERF_APMPI_LD_OPTS
+BUILD_APMPI_MODULE
+DARSHAN_USE_APMPI
 DARSHAN_USE_APXC
 DARSHAN_PNETCDF_LD_OPTS
 BUILD_PNETCDF_MODULE
@@ -686,7 +689,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -715,7 +717,6 @@ with_zlib
 enable_ld_preload
 enable_cuserid
 enable_group_readable_logs
-enable_autoperf_crayxc
 enable_mmap_logs
 with_mem_align
 with_log_path_by_env
@@ -728,6 +729,8 @@ enable_posix_mod
 enable_stdio_mod
 enable_dxt_mod
 enable_mpiio_mod
+enable_autoperf_apmpi
+enable_autoperf_crayxc
 enable_hdf5_mod
 enable_pnetcdf_mod
 enable_bgq_mod
@@ -782,7 +785,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1035,15 +1037,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1181,7 +1174,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1334,7 +1327,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1368,7 +1360,6 @@ Optional Features:
   --disable-cuserid       Disables attempted use of cuserid() at run time
   --enable-group-readable-logs
                           Set log files to be group readable
-  --enable-autoperf-crayxc    Enables compilation and use of the AutoPerf Cray XC module
   --enable-mmap-logs      Enables ability to mmap I/O data to log file
   --disable-null-mod      Disables compilation of NULL module
   --disable-posix-mod     Disables compilation and use of POSIX module
@@ -1376,6 +1367,12 @@ Optional Features:
   --disable-dxt-mod       Disables compilation and use of DXT module
   --disable-mpiio-mod     Disables compilation and use of MPI-IO module
                           (requires MPI)
+  --disable-autoperf-apmpi
+                          Disables compilation and use of AUTOPERF MPI module
+                          (requires MPI)
+  --disable-autoperf-crayxc
+                          Disables compilation and use of AUTOPERF CRAYXC
+                          module (requires MPI)
   --enable-hdf5-mod       Enables compilation and use of HDF5 module
   --disable-pnetcdf-mod   Disables compilation and use of PnetCDF module
                           (requires MPI)
@@ -4023,11 +4020,6 @@ fi
 fi
 
 
-# Check whether --enable-autoperf-crayxc was given.
-if test "${enable_autoperf_crayxc+set}" = set; then :
-  enableval=$enable_autoperf_crayxc; enable_autoperf_crayxc=yes
-fi
-
 
 # Check whether --enable-mmap-logs was given.
 if test "${enable_mmap_logs+set}" = set; then :
@@ -4216,6 +4208,29 @@ if test "x$enable_mpiio_mod" = "xno" || test "x$ENABLE_MPI" = "x"; then :
       DARSHAN_MPIIO_LD_OPTS=
 fi
 
+# AUTOPERF MPI module
+BUILD_APMPI_MODULE=1
+AUTOPERF_APMPI_LD_OPTS="@${darshan_share_path}/ld-opts/autoperf-apmpi-ld-opts"
+# Check whether --enable-autoperf-apmpi was given.
+if test "${enable_autoperf_apmpi+set}" = set; then :
+  enableval=$enable_autoperf_apmpi;
+fi
+
+if test "x$enable_autoperf_apmpi" = "xno" || test "x$ENABLE_MPI" = "x"; then :
+  BUILD_APMPI_MODULE=
+      AUTOPERF_APMPI_LD_OPTS=
+fi
+
+#AUTOPERF CRAYXC module
+# Check whether --enable-autoperf-crayxc was given.
+if test "${enable_autoperf_crayxc+set}" = set; then :
+  enableval=$enable_autoperf_crayxc;
+fi
+
+if test "x$enable_autoperf_apmpi" = "xno" || test "x$ENABLE_MPI" = "x"; then :
+
+fi
+
 # HDF5 module (disabled by default)
 BUILD_HDF5_MODULE=
 DARSHAN_HDF5_LD_OPTS=
@@ -4428,7 +4443,28 @@ ac_fn_c_check_header_preproc "$LINENO" "${abssrcdir}/../modules/autoperf/crayxc/
 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   DARSHAN_USE_APXC=1
 else
-  as_fn_error $? "The autoperf module is not present" "$LINENO" 5
+  as_fn_error $? "The autoperf crayxc module is not present" "$LINENO" 5
+fi
+
+ # this last part tells it to only check for presence
+fi
+
+if test x$enable_autoperf_apmpi = xyes; then
+    abssrcdir=$(readlink -f ${srcdir})
+    ac_fn_c_check_header_mongrel "$LINENO" "papi.h" "ac_cv_header_papi_h" "$ac_includes_default"
+if test "x$ac_cv_header_papi_h" = xyes; then :
+  with_papi=-lpapi
+else
+  as_fn_error $? "Cannot find required header for papi" "$LINENO" 5
+fi
+
+
+    as_ac_Header=`$as_echo "ac_cv_header_${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h" | $as_tr_sh`
+ac_fn_c_check_header_preproc "$LINENO" "${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h" "$as_ac_Header"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  DARSHAN_USE_APMPI=1
+else
+  as_fn_error $? "The autoperf apmpi module is not present" "$LINENO" 5
 fi
 
  # this last part tells it to only check for presence
@@ -5125,6 +5161,9 @@ DARSHAN_VERSION="3.2.1"
 
 
 
+
+
+
 
 
 
@@ -6502,3 +6541,17 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: MDHIM module support:   yes" >&5
 $as_echo "$as_me: MDHIM module support:   yes" >&6;}
 fi
+if test "x$DARSHAN_USE_APXC" = "x"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: AUTOPERF crayxc module support:   no" >&5
+$as_echo "$as_me: AUTOPERF crayxc module support:   no" >&6;}
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: AUTOPERF crayxc module support:   yes" >&5
+$as_echo "$as_me: AUTOPERF crayxc module support:   yes" >&6;}
+fi
+if test "x$DARSHAN_USE_APMPI" = "x"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: AUTOPERF MPI module support:   no" >&5
+$as_echo "$as_me: AUTOPERF MPI module support:   no" >&6;}
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: AUTOPERF MPI module support:   yes" >&5
+$as_echo "$as_me: AUTOPERF MPI module support:   yes" >&6;}
+fi


=====================================
darshan-runtime/configure.in
=====================================
@@ -97,12 +97,6 @@ AC_ARG_ENABLE(group-readable-logs,
 fi]
 ,)
 
-AC_ARG_ENABLE(
-    [autoperf-crayxc],
-    [  --enable-autoperf-crayxc    Enables compilation and use of the AutoPerf Cray XC module],
-    [enable_autoperf_crayxc=yes],
-    []
-)
 
 AC_ARG_ENABLE(mmap-logs,
 [  --enable-mmap-logs      Enables ability to mmap I/O data to log file],
@@ -226,6 +220,21 @@ AS_IF([test "x$enable_mpiio_mod" = "xno" || test "x$ENABLE_MPI" = "x"],
       BUILD_MPIIO_MODULE=
       DARSHAN_MPIIO_LD_OPTS=)
 
+# AUTOPERF MPI module
+BUILD_APMPI_MODULE=1
+AUTOPERF_APMPI_LD_OPTS="@${darshan_share_path}/ld-opts/autoperf-apmpi-ld-opts"
+AC_ARG_ENABLE(autoperf-apmpi,
+              AS_HELP_STRING([--disable-autoperf-apmpi], [Disables compilation and use of AUTOPERF MPI module (requires MPI)]))
+AS_IF([test "x$enable_autoperf_apmpi" = "xno" || test "x$ENABLE_MPI" = "x"],
+      BUILD_APMPI_MODULE=
+      AUTOPERF_APMPI_LD_OPTS=)
+
+#AUTOPERF CRAYXC module
+AC_ARG_ENABLE(autoperf-crayxc,
+              AS_HELP_STRING([--disable-autoperf-crayxc], [Disables compilation and use of AUTOPERF CRAYXC module (requires MPI)]))
+AS_IF([test "x$enable_autoperf_apmpi" = "xno" || test "x$ENABLE_MPI" = "x"],
+      )
+
 # HDF5 module (disabled by default)
 BUILD_HDF5_MODULE=
 DARSHAN_HDF5_LD_OPTS=
@@ -327,7 +336,19 @@ if test x$enable_autoperf_crayxc = xyes; then
                     [])
     AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/crayxc/darshan-apxc-log-format.h],
                     DARSHAN_USE_APXC=1,
-                    [AC_MSG_ERROR([The autoperf module is not present])],
+                    [AC_MSG_ERROR([The autoperf crayxc module is not present])],
+                    [-]) # this last part tells it to only check for presence
+fi
+
+if test x$enable_autoperf_apmpi = xyes; then
+    abssrcdir=$(readlink -f ${srcdir})
+    AC_CHECK_HEADER([papi.h],
+                    with_papi=-lpapi,
+                    [AC_MSG_ERROR([Cannot find required header for papi])],
+                    [])
+    AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h],
+                    DARSHAN_USE_APMPI=1,
+                    [AC_MSG_ERROR([The autoperf apmpi module is not present])],
                     [-]) # this last part tells it to only check for presence
 fi
 
@@ -543,6 +564,9 @@ AC_SUBST(DARSHAN_MPIIO_LD_OPTS)
 AC_SUBST(BUILD_PNETCDF_MODULE)
 AC_SUBST(DARSHAN_PNETCDF_LD_OPTS)
 AC_SUBST(DARSHAN_USE_APXC)
+AC_SUBST(DARSHAN_USE_APMPI)
+AC_SUBST(BUILD_APMPI_MODULE)
+AC_SUBST(AUTOPERF_APMPI_LD_OPTS)
 AC_SUBST(BUILD_HDF5_MODULE)
 AC_SUBST(DARSHAN_HDF5_LD_OPTS)
 AC_SUBST(DARSHAN_HDF5_ADD_DFLUSH_LD_OPTS)
@@ -584,3 +608,5 @@ AS_IF([test "x$BUILD_PNETCDF_MODULE" = "x"], [AC_MSG_NOTICE(PnetCDF module suppo
 AS_IF([test "x$BUILD_BGQ_MODULE" = "x"],     [AC_MSG_NOTICE(BG/Q module support:    no)], [AC_MSG_NOTICE(BG/Q module support:    yes)])
 AS_IF([test "x$BUILD_LUSTRE_MODULE" = "x"],  [AC_MSG_NOTICE(Lustre module support:  no)], [AC_MSG_NOTICE(Lustre module support:  yes)])
 AS_IF([test "x$BUILD_MDHIM_MODULE" = "x"],   [AC_MSG_NOTICE(MDHIM module support:   no)], [AC_MSG_NOTICE(MDHIM module support:   yes)])
+AS_IF([test "x$DARSHAN_USE_APXC" = "x"],   [AC_MSG_NOTICE(AUTOPERF crayxc module support:   no)], [AC_MSG_NOTICE(AUTOPERF crayxc module support:   yes)])
+AS_IF([test "x$DARSHAN_USE_APMPI" = "x"],   [AC_MSG_NOTICE(AUTOPERF MPI module support:   no)], [AC_MSG_NOTICE(AUTOPERF MPI module support:   yes)])


=====================================
darshan-runtime/darshan-dynamic.h
=====================================
@@ -101,11 +101,13 @@ DARSHAN_EXTERN_DECL(PMPI_Finalize, int, ());
 DARSHAN_EXTERN_DECL(PMPI_Init, int, (int *argc, char ***argv));
 DARSHAN_EXTERN_DECL(PMPI_Init_thread, int, (int *argc, char ***argv, int required, int *provided));
 DARSHAN_EXTERN_DECL(PMPI_Wtime, double, ());
-DARSHAN_EXTERN_DECL(PMPI_Allreduce, int, (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
+DARSHAN_EXTERN_DECL(PMPI_Allreduce, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
 DARSHAN_EXTERN_DECL(PMPI_Bcast, int, (void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm));
 DARSHAN_EXTERN_DECL(PMPI_Comm_rank, int, (MPI_Comm comm, int *rank));
 DARSHAN_EXTERN_DECL(PMPI_Comm_size, int, (MPI_Comm comm, int *size));
+#if 0
 DARSHAN_EXTERN_DECL(PMPI_Scan, int, (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
+#endif
 DARSHAN_EXTERN_DECL(PMPI_Type_commit, int, (MPI_Datatype *datatype));
 DARSHAN_EXTERN_DECL(PMPI_Type_contiguous, int, (int count, MPI_Datatype oldtype, MPI_Datatype *newtype));
 DARSHAN_EXTERN_DECL(PMPI_Type_extent, int, (MPI_Datatype datatype, MPI_Aint *extent));
@@ -115,6 +117,7 @@ DARSHAN_EXTERN_DECL(PMPI_Type_get_envelope, int, (MPI_Datatype datatype, int *nu
 DARSHAN_EXTERN_DECL(PMPI_Type_size, int, (MPI_Datatype datatype, int *size));
 DARSHAN_EXTERN_DECL(PMPI_Op_create, int, (MPI_User_function *function, int commute, MPI_Op *op));
 DARSHAN_EXTERN_DECL(PMPI_Op_free, int, (MPI_Op *op));
+#if 0
 #ifdef HAVE_MPIIO_CONST
 DARSHAN_EXTERN_DECL(PMPI_Reduce, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm));
 #else
@@ -132,6 +135,7 @@ DARSHAN_EXTERN_DECL(PMPI_Gather, int, (const void *sendbuf, int sendcount, MPI_D
 DARSHAN_EXTERN_DECL(PMPI_Gather, int, (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm));
 #endif
 DARSHAN_EXTERN_DECL(PMPI_Barrier, int, (MPI_Comm comm));
+#endif /* if 0 */
 #endif /* HAVE_MPI */
 
 #endif


=====================================
darshan-runtime/lib/darshan-core.c
=====================================
@@ -92,6 +92,9 @@ extern void bgq_runtime_initialize();
 #ifdef DARSHAN_USE_APXC
 extern void apxc_runtime_initialize();
 #endif
+#ifdef DARSHAN_USE_APMPI
+extern void apmpi_runtime_initialize();
+#endif
 
 /* array of init functions for modules which need to be statically
  * initialized by darshan at startup time
@@ -103,6 +106,9 @@ void (*mod_static_init_fns[])(void) =
 #endif
 #ifdef DARSHAN_USE_APXC
     &apxc_runtime_initialize,
+#endif
+#ifdef DARSHAN_USE_APMPI
+    &apmpi_runtime_initialize,
 #endif
     NULL
 };
@@ -450,7 +456,6 @@ void darshan_core_shutdown()
     final_core = darshan_core;
     darshan_core = NULL;
     DARSHAN_CORE_UNLOCK();
-
     /* grab some initial timing information */
 #ifdef HAVE_MPI
     /* if using mpi, sync across procs first */
@@ -579,7 +584,6 @@ void darshan_core_shutdown()
             final_core->log_hdr_p->mod_map[i].len = 0;
             continue;
         }
-
         if(internal_timing_flag)
             mod1[i] = darshan_core_wtime();
 
@@ -588,6 +592,8 @@ void darshan_core_shutdown()
         {
             mod_buf = final_core->mod_array[i]->rec_buf_start;
             mod_buf_sz = final_core->mod_array[i]->rec_buf_p - mod_buf;
+            
+            printf("l 596 --- MOD_ID: %d mod_buf_sz: %d\n", i, mod_buf_sz);
 
 #ifdef HAVE_MPI
             if(using_mpi)
@@ -595,24 +601,34 @@ void darshan_core_shutdown()
                 struct darshan_core_name_record_ref *ref = NULL;
                 int mod_shared_rec_cnt = 0;
                 int j;
-
                 /* set the shared record list for this module */
                 for(j = 0; j < shared_rec_cnt; j++)
                 {
+                    
                     HASH_FIND(hlink, final_core->name_hash, &shared_recs[j],
                         sizeof(darshan_record_id), ref);
                     assert(ref);
+                    printf("l 611 --- MOD_ID: %d ref->global_mod_flags: %d \n", i, ref->global_mod_flags );
                     if(DARSHAN_MOD_FLAG_ISSET(ref->global_mod_flags, i))
                     {
                         mod_shared_recs[mod_shared_rec_cnt++] = shared_recs[j];
                     }
                 }
-
+                printf("l 617 --- MOD_ID: %d shared_rec_cnt:%d mod_shared_rec_cnt:%d\n", i, shared_rec_cnt, mod_shared_rec_cnt);
+
+                /*  int comm_size;
+                   MPI_Comm_size(final_core->mpi_comm, &comm_size);
+                   char name[MPI_MAX_OBJECT_NAME];
+                   int name_length;
+                   MPI_Comm_get_name(final_core->mpi_comm, name, &name_length);
+                */
+                printf("l 624 --- MOD_ID: %d DARSHAN_DISABLE_SHARED_REDUCTION:%d \n", i, getenv("DARSHAN_DISABLE_SHARED_REDUCTION"));
                 /* allow the module an opportunity to reduce shared files */
                 if(this_mod->mod_funcs.mod_redux_func && (mod_shared_rec_cnt > 0) &&
-                   (!getenv("DARSHAN_DISABLE_SHARED_REDUCTION")))
+                   (!getenv("DARSHAN_DISABLE_SHARED_REDUCTION"))){
                     this_mod->mod_funcs.mod_redux_func(mod_buf, final_core->mpi_comm,
                         mod_shared_recs, mod_shared_rec_cnt);
+                    }
             }
 #endif
 
@@ -2175,7 +2191,7 @@ void darshan_core_register_module(
         DARSHAN_CORE_UNLOCK();
         return;
     }
-
+    
     mod = malloc(sizeof(*mod));
     if(!mod)
     {
@@ -2299,7 +2315,7 @@ void *darshan_core_register_record(
             DARSHAN_MOD_FLAG_SET(ref->mod_flags, mod_id);
         }
     }
-
+    
     rec_buf = darshan_core->mod_array[mod_id]->rec_buf_p;
     darshan_core->mod_array[mod_id]->rec_buf_p += rec_len;
     darshan_core->mod_array[mod_id]->rec_mem_avail -= rec_len;


=====================================
darshan-runtime/share/ld-opts/darshan-base-ld-opts.in
=====================================
@@ -13,3 +13,4 @@
 @DARSHAN_PNETCDF_LD_OPTS@
 @DARSHAN_HDF5_LD_OPTS@
 @DARSHAN_MDHIM_LD_OPTS@
+ at AUTOPERF_APMPI_LD_OPTS@


=====================================
darshan-util/Makefile.in
=====================================
@@ -11,6 +11,7 @@ bindir = @bindir@
 libdir = @libdir@
 
 DARSHAN_USE_APXC = @DARSHAN_USE_APXC@
+DARSHAN_USE_APMPI = @DARSHAN_USE_APMPI@
 
 DARSHAN_LOG_FORMAT = $(srcdir)/../darshan-log-format.h
 DARSHAN_MOD_LOG_FORMATS = $(srcdir)/../darshan-posix-log-format.h \
@@ -84,6 +85,9 @@ LIBS = -lz @LIBBZ2@
 ifdef DARSHAN_USE_APXC
 include $(srcdir)/../modules/autoperf/crayxc/util/Makefile.darshan
 endif
+ifdef DARSHAN_USE_APMPI
+include $(srcdir)/../modules/autoperf/apmpi/util/Makefile.darshan
+endif
 
 mktestdir::
 	mkdir -p test


=====================================
darshan-util/configure
=====================================
@@ -621,6 +621,7 @@ ac_includes_default="\
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+DARSHAN_USE_APMPI
 DARSHAN_USE_APXC
 DARSHAN_UTIL_VERSION
 DARSHAN_PYDARSHAN_PATH
@@ -673,7 +674,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -701,6 +701,7 @@ with_bzlib
 enable_shared
 enable_pydarshan
 enable_autoperf_crayxc
+enable_autoperf_apmpi
 '
       ac_precious_vars='build_alias
 host_alias
@@ -750,7 +751,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1003,15 +1003,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1149,7 +1140,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1302,7 +1293,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1335,6 +1325,7 @@ Optional Features:
   --enable-shared   enables building of shared darshan-util library
   --enable-pydarshan   enables build/install of pydarshan module and tools
   --enable-autoperf-crayxc    Enables compilation and use of the AutoPerf Cray XC module
+  --enable-autoperf-apmpi    Enables compilation and use of the AutoPerf MPI module
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -4404,6 +4395,11 @@ if test "${enable_autoperf_crayxc+set}" = set; then :
   enableval=$enable_autoperf_crayxc; enable_autoperf_crayxc=yes
 fi
 
+# Check whether --enable-autoperf-apmpi was given.
+if test "${enable_autoperf_apmpi+set}" = set; then :
+  enableval=$enable_autoperf_apmpi; enable_autoperf_apmpi=yes
+fi
+
 
 if test x$enable_autoperf_crayxc = xyes; then
     abssrcdir=$(readlink -f ${srcdir})
@@ -4412,7 +4408,19 @@ ac_fn_c_check_header_preproc "$LINENO" "${abssrcdir}/../modules/autoperf/crayxc/
 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   DARSHAN_USE_APXC=1
 else
-  as_fn_error $? "The autoperf module is not present" "$LINENO" 5
+  as_fn_error $? "The autoperf crayxc module is not present" "$LINENO" 5
+fi
+
+ # this last part tells it to only check for presence
+fi
+if test x$enable_autoperf_apmpi = xyes; then
+    abssrcdir=$(readlink -f ${srcdir})
+    as_ac_Header=`$as_echo "ac_cv_header_${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h" | $as_tr_sh`
+ac_fn_c_check_header_preproc "$LINENO" "${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h" "$as_ac_Header"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  DARSHAN_USE_APMPI=1
+else
+  as_fn_error $? "The autoperf MPI module is not present" "$LINENO" 5
 fi
 
  # this last part tells it to only check for presence
@@ -4442,6 +4450,7 @@ DARSHAN_UTIL_VERSION="3.2.1"
 
 
 
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure


=====================================
darshan-util/configure.in
=====================================
@@ -121,12 +121,25 @@ AC_ARG_ENABLE(
     [enable_autoperf_crayxc=yes],
     []
 )
+AC_ARG_ENABLE(
+    [autoperf-apmpi],
+    [  --enable-autoperf-apmpi    Enables compilation and use of the AutoPerf MPI module],
+    [enable_autoperf_apmpi=yes],
+    []
+)
 
 if test x$enable_autoperf_crayxc = xyes; then
     abssrcdir=$(readlink -f ${srcdir})
     AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/crayxc/darshan-apxc-log-format.h],
                     DARSHAN_USE_APXC=1,
-                    [AC_MSG_ERROR([The autoperf module is not present])],
+                    [AC_MSG_ERROR([The autoperf crayxc module is not present])],
+                    [-]) # this last part tells it to only check for presence
+fi
+if test x$enable_autoperf_apmpi = xyes; then
+    abssrcdir=$(readlink -f ${srcdir})
+    AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h],
+                    DARSHAN_USE_APMPI=1,
+                    [AC_MSG_ERROR([The autoperf MPI module is not present])],
                     [-]) # this last part tells it to only check for presence
 fi
 
@@ -143,6 +156,7 @@ AC_SUBST(PYTHON)
 AC_SUBST(DARSHAN_PYDARSHAN_PATH)
 AC_SUBST(DARSHAN_UTIL_VERSION)
 AC_SUBST(DARSHAN_USE_APXC)
+AC_SUBST(DARSHAN_USE_APMPI)
 
 AC_OUTPUT
 


=====================================
darshan-util/darshan-logutils.h
=====================================
@@ -158,6 +158,9 @@ extern struct darshan_mod_logutil_funcs *mod_logutils[];
 #ifdef DARSHAN_USE_APXC
 #include "darshan-apxc-logutils.h"
 #endif
+#ifdef DARSHAN_USE_APMPI
+#include "darshan-apmpi-logutils.h"
+#endif
 
 darshan_fd darshan_log_open(const char *name);
 darshan_fd darshan_log_create(const char *name, enum darshan_comp_type comp_type,


=====================================
modules/autoperf
=====================================
@@ -1 +1 @@
-Subproject commit e2b599def0863e0357ddce3b75f2b4072e6ff376
+Subproject commit 7c34b6a4fb05b4197641c7c8e9b07be3fe089fad



View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/-/commit/d8960f703164c7ef2e42dc1429f1f8c92fd5dfe9

-- 
View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/-/commit/d8960f703164c7ef2e42dc1429f1f8c92fd5dfe9
You're receiving this email because of your account on xgitlab.cels.anl.gov.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/darshan-commits/attachments/20210112/71e84c80/attachment-0001.html>


More information about the Darshan-commits mailing list