[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