Commit ec599e1d authored by wkliao's avatar wkliao
Browse files

add missed by rebase

parent 2a5e27d8
......@@ -245,14 +245,14 @@ if test "x$enable_darshan_runtime" = xyes ; then
fi
# AUTOPERF MPI module
AC_ARG_ENABLE([apmpi-mod],
[AS_HELP_STRING([--enable-apmpi-mod],
AC_ARG_ENABLE([apmpi],
[AS_HELP_STRING([--enable-apmpi],
[Enables compilation and use of AUTOPERF MPI module (requires MPI)])],
[], [enable_apmpi_mod=no]
[], [enable_apmpi=no]
)
if test "x$enable_apmpi_mod" = xyes ; then
if test "x$enable_apmpi" = xyes ; then
if test "x$ENABLE_MPI" = xno ; then
AC_MSG_ERROR([--enable-apmpi-mod Autoperf MPI module requires MPI support])
AC_MSG_ERROR([--enable-apmpi Autoperf MPI module requires MPI support])
fi
abssrcdir=$(readlink -f ${srcdir})
AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h],
......@@ -274,14 +274,14 @@ if test "x$enable_darshan_runtime" = xyes ; then
fi
#AUTOPERF APXC module
AC_ARG_ENABLE([apxc-mod],
[AS_HELP_STRING([--enable-apxc-mod],
AC_ARG_ENABLE([apxc],
[AS_HELP_STRING([--enable-apxc],
[Enables compilation and use of AUTOPERF APXC module (requires MPI)])],
[], [enable_apxc_mod=no]
[], [enable_apxc=no]
)
if test "x$enable_apxc_mod" = xyes ; then
if test "x$enable_apxc" = xyes ; then
if test "x$ENABLE_MPI" = xno ; then
AC_MSG_ERROR([--enable-apxc-mod Autoperf XC module requires MPI support])
AC_MSG_ERROR([--enable-apxc Autoperf XC module requires MPI support])
fi
abssrcdir=$(readlink -f ${srcdir})
AC_CHECK_HEADER([papi.h],
......@@ -395,8 +395,14 @@ if test "x$enable_darshan_runtime" = xyes ; then
)
# if lustre module not disabled, check for needed Lustre module header
if test x$enable_lustre_mod != xno; then
AC_CHECK_HEADER([lustre/lustre_user.h],
[AS_IF([test "x$enable_lustre_mod" = xyes],
AC_CHECK_HEADER([lustre/lustreapi.h],
[AC_CHECK_LIB(lustreapi, llapi_layout_get_by_xattr,
[BUILD_LUSTRE_MODULE=1
DARSHAN_LUSTRE_LD_FLAGS="-llustreapi"],
[AS_IF([test "x$enable_lustre_mod" = xyes],
[AC_MSG_ERROR(Cannot find required llapi_layout_get_by_xattr function for the Lustre module)])
])
AS_IF([test "x$enable_lustre_mod" = xyes],
[AC_MSG_ERROR(Cannot find required headers for the Lustre module)])
enable_lustre_mod=yes],
[enable_lustre_mod=no])
......@@ -532,6 +538,7 @@ if test "x$enable_darshan_runtime" = xyes ; then
AC_SUBST(DARSHAN_APMPI_LD_OPTS)
AC_SUBST(DARSHAN_HDF5_ADD_DFLUSH_LD_OPTS)
AC_SUBST(DARSHAN_HDF5_LD_FLAGS)
AC_SUBST(DARSHAN_LUSTRE_LD_FLAGS)
AC_SUBST(with_papi)
else
enable_mmap_logs=no
......@@ -540,8 +547,8 @@ else
enable_stdio_mod=no
enable_dxt_mod=no
enable_mpiio_mod=no
enable_apmpi_mod=no
enable_apxc_mod=no
enable_apmpi=no
enable_apxc=no
with_hdf5_mod=no
enable_pnetcdf_mod=no
enable_bgq_mod=no
......@@ -564,8 +571,8 @@ AM_CONDITIONAL(BUILD_BGQ_MODULE, [test "x$enable_bgq_mod" = xyes])
AM_CONDITIONAL(BUILD_LUSTRE_MODULE, [test "x$enable_lustre_mod" = xyes])
AM_CONDITIONAL(BUILD_MDHIM_MODULE, [test "x$enable_mdhim" = xyes])
AM_CONDITIONAL(ENABLE_LDPRELOAD, [test "x$enable_ld_preload" = xyes])
AM_CONDITIONAL(BUILD_APMPI_MODULE, [test "x$enable_apmpi_mod" = xyes])
AM_CONDITIONAL(BUILD_APXC_MODULE, [test "x$enable_apxc_mod" = xyes])
AM_CONDITIONAL(BUILD_APMPI_MODULE, [test "x$enable_apmpi" = xyes])
AM_CONDITIONAL(BUILD_APXC_MODULE, [test "x$enable_apxc" = xyes])
dnl When MPI is enabled, CC has been set to the MPI C compiler.
dnl MPICC will substitute CC in all Makefile.am files
......@@ -617,8 +624,9 @@ if test "x$enable_darshan_runtime" = xyes ; then
STDIO module support - $enable_stdio_mod
DXT module support - $enable_dxt_mod
MPI-IO module support - $enable_mpiio_mod
AUTOPERF MPI module support - $enable_apmpi_mod
AUTOPERF APXC module support - $enable_apxc_mod
AUTOPERF MPI module support - $enable_apmpi
AUTOPERF MPI sync collectives - $enable_apmpi_coll_sync
AUTOPERF APXC module support - $enable_apxc
HDF5 module support - $with_hdf5_mod
PnetCDF module support - $enable_pnetcdf_mod
BG/Q module support - $enable_bgq_mod
......
......@@ -482,7 +482,7 @@ AutoPerf offers two additional Darshan instrumentation modules that may be enabl
* APMPI: Instrumentation of over 70 MPI-3 communication routines, providing operation counts, datatype sizes, and timing information for each application MPI rank.
* APXC: Instrumentation of Cray XC environments to provide network and compute counters of interest, via PAPI.
Users can request Darshan to build the APMPI and APXC modules by passing `--enable-apmpi-mod` and `--enable-apxc-mod` options to configure, respectively. Note that these options can be requested independently (i.e., you can build Darshan with APMPI support but not APXC support, and vice versa).
Users can request Darshan to build the APMPI and APXC modules by passing `--enable-apmpi` and `--enable-apxc` options to configure, respectively. Note that these options can be requested independently (i.e., you can build Darshan with APMPI support but not APXC support, and vice versa).
The only prerequsisite for the APMPI module is that Darsan be configured with a MPI-3 compliant compiler. For APXC, the user must obviously be using a Cray XC system and must make the PAPI interace available to Darshan (i.e., by running `module load papi`, before building Darshan).
......
......@@ -64,6 +64,34 @@ endif
libdarshan_la_SOURCES = $(C_SRCS)
libdarshan_la_LIBADD = -lpthread -lrt -lz -ldl
BUILT_SOURCES =
CLEANFILES =
include_HEADERS =
apxc_root = $(top_srcdir)/../modules/autoperf/apxc
if BUILD_APXC_MODULE
include_HEADERS += $(apxc_root)/darshan-apxc-log-format.h \
$(apxc_root)/lib/darshan-apxc-utils.h
BUILT_SOURCES += darshan-apxc.c
CLEANFILES += darshan-apxc.c
libdarshan_la_SOURCES += darshan-apxc.c
AM_CPPFLAGS += -DDARSHAN_USE_APXC \
-I$(apxc_root) -I$(apxc_root)/lib
endif
darshan-apxc.c:
$(LN_S) $(apxc_root)/lib/darshan-apxc.c .
apmpi_root = $(top_srcdir)/../modules/autoperf/apmpi
if BUILD_APMPI_MODULE
include_HEADERS += $(apmpi_root)/darshan-apmpi-log-format.h
BUILT_SOURCES += darshan-apmpi.c
CLEANFILES += darshan-apmpi.c
libdarshan_la_SOURCES += darshan-apmpi.c
AM_CPPFLAGS += -DDARSHAN_USE_APMPI \
-I$(apmpi_root) -I$(apmpi_root)/lib
endif
darshan-apmpi.c:
$(LN_S) $(apmpi_root)/lib/darshan-apmpi.c .
H_SRCS = darshan-common.h \
darshan.h \
darshan-core.h \
......
......@@ -101,7 +101,7 @@ 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, ());
#ifdef MPI_VERSION >= 3
#if MPI_VERSION >= 3
DARSHAN_EXTERN_DECL(PMPI_Allreduce, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
#else
DARSHAN_EXTERN_DECL(PMPI_Allreduce, int, (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
......@@ -109,7 +109,7 @@ DARSHAN_EXTERN_DECL(PMPI_Allreduce, int, (void *sendbuf, void *recvbuf, int coun
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));
#ifdef MPI_VERSION >= 3
#if MPI_VERSION >= 3
DARSHAN_EXTERN_DECL(PMPI_Scan, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
#else
DARSHAN_EXTERN_DECL(PMPI_Scan, int, (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm));
......@@ -118,7 +118,7 @@ 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));
DARSHAN_EXTERN_DECL(PMPI_Type_free, int, (MPI_Datatype *datatype));
#ifdef MPI_VERSION >= 3
#if MPI_VERSION >= 3
DARSHAN_EXTERN_DECL(PMPI_Type_hindexed, int, (int count, const int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype));
#else
DARSHAN_EXTERN_DECL(PMPI_Type_hindexed, int, (int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype));
......
......@@ -10,14 +10,6 @@ AM_CPPFLAGS = -I${top_srcdir}/../include
SUBDIRS = darshan-job-summary
if DARSHAN_USE_APXC
SUBDIRS += modules/autoperf/apxc/util
endif
if DARSHAN_USE_APMPI
SUBDIRS += modules/autoperf/apmpi/util
endif
lib_LTLIBRARIES = libdarshan-util.la
libdarshan_util_la_SOURCES = darshan-null-logutils.c \
......@@ -86,6 +78,33 @@ uthash-1.9.2:
nobase_include_HEADERS = uthash-1.9.2/src/uthash.h
CLEANFILES =
apxc_root = $(top_srcdir)/../modules/autoperf/apxc
if DARSHAN_USE_APXC
include_HEADERS += $(apxc_root)/darshan-apxc-log-format.h \
$(apxc_root)/util/darshan-apxc-logutils.h
BUILT_SOURCES += darshan-apxc-logutils.c
CLEANFILES += darshan-apxc-logutils.c
libdarshan_util_la_SOURCES += darshan-apxc-logutils.c
AM_CPPFLAGS += -DDARSHAN_USE_APXC \
-I$(apxc_root) -I$(apxc_root)/util
endif
darshan-apxc-logutils.c:
$(LN_S) $(apxc_root)/util/darshan-apxc-logutils.c .
apmpi_root = $(top_srcdir)/../modules/autoperf/apmpi
if DARSHAN_USE_APMPI
include_HEADERS += $(apmpi_root)/darshan-apmpi-log-format.h \
$(apmpi_root)/util/darshan-apmpi-logutils.h
BUILT_SOURCES += darshan-apmpi-logutils.c
CLEANFILES += darshan-apmpi-logutils.c
libdarshan_util_la_SOURCES += darshan-apmpi-logutils.c
AM_CPPFLAGS += -DDARSHAN_USE_APMPI \
-I$(apmpi_root) -I$(apmpi_root)/util
endif
darshan-apmpi-logutils.c:
$(LN_S) $(apmpi_root)/util/darshan-apmpi-logutils.c .
distclean-local: distclean-local-check
distclean-local-check:
-rm -rf uthash-1.9.2
......
......@@ -104,24 +104,24 @@ if test "x$enable_darshan_util" = xyes ; then
AC_CONFIG_FILES([pydarshan-info.py pydarshan-info.sh])
fi
AC_ARG_ENABLE([autoperf-apxc],
[AS_HELP_STRING([--enable-autoperf-apxc],
AC_ARG_ENABLE([apxc],
[AS_HELP_STRING([--enable-apxc],
[enables compilation and use of the AutoPerf Cray XC module])],
[], [enable_autoperf_apxc=no]
[], [enable_apxc=no]
)
if test x$enable_autoperf_apxc = xyes; then
if test "x$enable_apxc" = xyes; then
abssrcdir=$(readlink -f ${srcdir})
AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/apxc/darshan-apxc-log-format.h],
DARSHAN_USE_APXC=1,
[AC_MSG_ERROR([The autoperf APXC module is not present])],
[-]) # this last part tells it to only check for presence
fi
AC_ARG_ENABLE([autoperf-apmpi],
[AS_HELP_STRING([--enable-autoperf-apmpi],
AC_ARG_ENABLE([apmpi],
[AS_HELP_STRING([--enable-apmpi],
[enables compilation and use of the AutoPerf MPI module])],
[], [enable_autoperf_apmpi=no]
[], [enable_apmpi=no]
)
if test x$enable_autoperf_apmpi = xyes; then
if test "x$enable_apmpi" = xyes; then
abssrcdir=$(readlink -f ${srcdir})
AC_CHECK_HEADER([${abssrcdir}/../modules/autoperf/apmpi/darshan-apmpi-log-format.h],
DARSHAN_USE_APMPI=1,
......@@ -150,8 +150,8 @@ else
fi
AM_CONDITIONAL(DARSHAN_ENABLE_PYDARSHAN, [test "x$enable_pydarshan" = xyes])
AM_CONDITIONAL(DARSHAN_USE_APXC, [test "x$enable_autoperf_apxc" = xyes])
AM_CONDITIONAL(DARSHAN_USE_APMPI, [test "x$enable_autoperf_apmpi" = xyes])
AM_CONDITIONAL(DARSHAN_USE_APXC, [test "x$enable_apxc" = xyes])
AM_CONDITIONAL(DARSHAN_USE_APMPI, [test "x$enable_apmpi" = xyes])
AC_CONFIG_FILES([Makefile \
darshan-job-summary/Makefile \
......@@ -164,6 +164,8 @@ if test "x$enable_darshan_util" = xyes ; then
echo "------------------------------------------------------------------------------
${PACKAGE_NAME} Version ${PACKAGE_VERSION} configured with the following features:
C compiler - $SEQ_CC
Python module and tools - $enable_pydarshan"
Python module and tools - $enable_pydarshan
AUTOPERF MPI module support - $enable_apmpi
AUTOPERF APXC module support - $enable_apxc"
fi
......@@ -66,7 +66,7 @@ method of compilation.
The `--enable-shared` argument to configure can be used to enable
compilation of a shared version of the darshan-util library.
The `--enable-autoperf-apmpi` and `--enable-autoperf-apxc` configure
The `--enable-apmpi` and `--enable-apxc` configure
arguments must be specified to build darshan-util with support for AutoPerf
APMPI and APXC modules, respectively.
......
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