Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions .github/workflows/mpich_openmpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,79 @@ jobs:
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

- name: Build Darshan using MPICH --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
export DARSHAN_ROOT="${GITHUB_WORKSPACE}"
export DARSHAN_LOG_PATH="${GITHUB_WORKSPACE}/LOGS"
export DARSHAN_INSTALL="${GITHUB_WORKSPACE}/INSTALL"
export DARSHAN_BUILD="${GITHUB_WORKSPACE}/BUILD"
rm -rf ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD} ${DARSHAN_INSTALL}
mkdir -p ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD}
cd ${DARSHAN_BUILD}
$DARSHAN_ROOT/configure --prefix=${DARSHAN_INSTALL} \
--with-log-path=${DARSHAN_LOG_PATH} \
--with-jobid-env=NONE \
--enable-apmpi-mod \
CC=mpicc RUNTIME_CC=mpicc UTIL_CC=gcc
make -s LIBTOOLFLAGS=--silent V=1 -j8
make -s install
- name: make check (MPICH) --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check
- name: Print test log files (MPICH) --enable-apmpi-mod
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log
- name: make check (MPICH) running 4 processes --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check NP=4
- name: Print test log files (MPICH) running 4 processes --enable-apmpi-mod
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

- name: Build Darshan using MPICH --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
export DARSHAN_ROOT="${GITHUB_WORKSPACE}"
export DARSHAN_LOG_PATH="${GITHUB_WORKSPACE}/LOGS"
export DARSHAN_INSTALL="${GITHUB_WORKSPACE}/INSTALL"
export DARSHAN_BUILD="${GITHUB_WORKSPACE}/BUILD"
rm -rf ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD} ${DARSHAN_INSTALL}
mkdir -p ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD}
cd ${DARSHAN_BUILD}
$DARSHAN_ROOT/configure --prefix=${DARSHAN_INSTALL} \
--with-log-path=${DARSHAN_LOG_PATH} \
--with-jobid-env=NONE \
--enable-apmpi-mod \
--enable-apmpi-coll-sync \
CC=mpicc RUNTIME_CC=mpicc UTIL_CC=gcc
make -s LIBTOOLFLAGS=--silent V=1 -j8
make -s install
- name: make check (MPICH) --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check
- name: Print test log files (MPICH) --enable-apmpi-mod --enable-apmpi-coll-sync
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log
- name: make check (MPICH) running 4 processes --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/MPICH/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check NP=4
- name: Print test log files (MPICH) running 4 processes --enable-apmpi-mod --enable-apmpi-coll-sync
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

- name: Build Darshan using OpenMPI
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
Expand Down Expand Up @@ -130,3 +203,76 @@ jobs:
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

- name: Build Darshan using OpenMPI --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
export DARSHAN_ROOT="${GITHUB_WORKSPACE}"
export DARSHAN_LOG_PATH="${GITHUB_WORKSPACE}/LOGS"
export DARSHAN_INSTALL="${GITHUB_WORKSPACE}/INSTALL"
export DARSHAN_BUILD="${GITHUB_WORKSPACE}/BUILD"
rm -rf ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD} ${DARSHAN_INSTALL}
mkdir -p ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD}
cd ${DARSHAN_BUILD}
$DARSHAN_ROOT/configure --prefix=${DARSHAN_INSTALL} \
--with-log-path=${DARSHAN_LOG_PATH} \
--with-jobid-env=NONE \
--enable-apmpi-mod \
CC=mpicc RUNTIME_CC=mpicc UTIL_CC=gcc
make -s LIBTOOLFLAGS=--silent V=1 -j8
make -s install
- name: make check (OpenMPI) --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check
- name: Print test log files (OpenMPI) --enable-apmpi-mod
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log
- name: make check (OpenMPI) running 4 processes --enable-apmpi-mod
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check NP=4
- name: Print test log files (OpenMPI) running 4 processes --enable-apmpi-mod
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

- name: Build Darshan using OpenMPI --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
export DARSHAN_ROOT="${GITHUB_WORKSPACE}"
export DARSHAN_LOG_PATH="${GITHUB_WORKSPACE}/LOGS"
export DARSHAN_INSTALL="${GITHUB_WORKSPACE}/INSTALL"
export DARSHAN_BUILD="${GITHUB_WORKSPACE}/BUILD"
rm -rf ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD} ${DARSHAN_INSTALL}
mkdir -p ${DARSHAN_LOG_PATH} ${DARSHAN_BUILD}
cd ${DARSHAN_BUILD}
$DARSHAN_ROOT/configure --prefix=${DARSHAN_INSTALL} \
--with-log-path=${DARSHAN_LOG_PATH} \
--with-jobid-env=NONE \
--enable-apmpi-mod \
--enable-apmpi-coll-sync \
CC=mpicc RUNTIME_CC=mpicc UTIL_CC=gcc
make -s LIBTOOLFLAGS=--silent V=1 -j8
make -s install
- name: make check (OpenMPI) --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check
- name: Print test log files (OpenMPI) --enable-apmpi-mod --enable-apmpi-coll-sync
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log
- name: make check (OpenMPI) running 4 processes --enable-apmpi-mod --enable-apmpi-coll-sync
run: |
export PATH="${GITHUB_WORKSPACE}/OPENMPI/bin:${PATH}"
cd ${GITHUB_WORKSPACE}/BUILD
make check NP=4
- name: Print test log files (OpenMPI) running 4 processes --enable-apmpi-mod --enable-apmpi-coll-sync
if: ${{ always() }}
run: |
cat ${GITHUB_WORKSPACE}/BUILD/darshan-runtime/test/tst_runs.log

6 changes: 5 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@

ACLOCAL_AMFLAGS = -I maint/config

SUBDIRS =
if BUILD_APMPI_MODULE
SUBDIRS = modules .
else
SUBDIRS = .
endif

if BUILD_DARSHAN_RUNTIME
SUBDIRS += darshan-runtime
Expand Down
10 changes: 9 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@ AC_ARG_ENABLE([darshan-runtime],
)
AM_CONDITIONAL(BUILD_DARSHAN_RUNTIME, [test "x$enable_darshan_runtime" != xno])

# AUTOPERF MPI module
AC_ARG_ENABLE([apmpi-mod],
[AS_HELP_STRING([--enable-apmpi-mod],
[Enables compilation and use of AUTOPERF MPI module (requ ires MPI)])],
[], [enable_apmpi_mod=no]
)
AM_CONDITIONAL(BUILD_APMPI_MODULE, [test "x$enable_apmpi_mod" = xyes])

AC_ARG_ENABLE([darshan-util],
[AS_HELP_STRING([--disable-darshan-util],
[Build without Darshan utility tools])],
Expand Down Expand Up @@ -57,7 +65,7 @@ fi
dnl must configure subpackages even if they are not built
AC_CONFIG_SUBDIRS([darshan-util])

AC_CONFIG_FILES(Makefile)
AC_CONFIG_FILES(Makefile modules/Makefile)

AC_OUTPUT

Expand Down
6 changes: 5 additions & 1 deletion darshan-runtime/test/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ AM_CPPFLAGS = -I$(top_builddir)
check_PROGRAMS =

if BUILD_MPIIO_MODULE
check_PROGRAMS += tst_mpi_io
check_PROGRAMS += tst_mpi_init \
tst_mpi_io

tst_mpi_init_SOURCES = tst_mpi_init.c
tst_mpi_io_SOURCES = tst_mpi_io.c

TESTS = tst_runs.sh
else
TESTS =
Expand Down
15 changes: 15 additions & 0 deletions darshan-runtime/test/tst_mpi_init.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifdef HAVE_CONFIG_H
#include <darshan-runtime-config.h> /* output of 'configure' */
#endif

#include <mpi.h>

int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);

MPI_Finalize();
return 0;
}


12 changes: 11 additions & 1 deletion darshan-runtime/test/tst_runs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,17 @@ echo "LD_PRELOAD=$LD_PRELOAD"

for exe in ${check_PROGRAMS} ; do

if test "x$exe" = xtst_mpi_io ; then
echo ""
echo "==== Testing program: $exe"
echo ""

if test "x$exe" = xtst_mpi_init ; then

CMD="${TESTMPIRUN} -n ${NP} ./$exe"
echo "CMD=$CMD"
$CMD

elif test "x$exe" = xtst_mpi_io ; then

DARSHAN_LOG_FILE="${TST_DARSHAN_LOG_PATH}/${USERNAME_ENV}_${exe}*"
echo "DARSHAN_LOG_FILE=$DARSHAN_LOG_FILE"
Expand Down
23 changes: 23 additions & 0 deletions modules/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#
# See COPYRIGHT notice in top-level directory.
#
# @configure_input@

apmpi_c_src = $(srcdir)/autoperf/apmpi/lib/darshan-apmpi.c
apmpi_c_saved = $(srcdir)/autoperf/apmpi/lib/saved_darshan-apmpi.c
apmpi_c_patch = $(srcdir)/apmpi.patch

# Rule to apply the patch
$(apmpi_c_saved): $(apmpi_c_src) $(apmpi_c_patch)
cp -f $(apmpi_c_src) $(apmpi_c_saved)
patch -f -p0 $(apmpi_c_src) < $(apmpi_c_patch)
touch $@

BUILT_SOURCES = $(apmpi_c_saved)

EXTRA_DIST = apmpi.patch

clean: $(apmpi_c_saved)
cp -f $(apmpi_c_saved) $(apmpi_c_src)
rm -f $(apmpi_c_saved) $(apmpi_c_src).*

27 changes: 27 additions & 0 deletions modules/apmpi.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
--- darshan-apmpi.c.orig 2025-10-03 14:11:57.395296967 -0500
+++ darshan-apmpi.c 2025-10-03 14:22:12.684565527 -0500
@@ -29,14 +29,16 @@
#define TIME_SYNC(FUNC) \
double tm1, tm2, tm3, tdiff, tsync;\
int ret; \
- MAP_OR_FAIL(PMPI_Barrier);\
- tm1 = APMPI_WTIME(); \
- ret = __real_PMPI_Barrier(comm); \
- tm2 = APMPI_WTIME(); \
- ret = FUNC; \
- tm3 = APMPI_WTIME(); \
- tdiff = tm3-tm2; \
- tsync = tm2-tm1
+ { \
+ MAP_OR_FAIL(PMPI_Barrier);\
+ tm1 = APMPI_WTIME(); \
+ ret = __real_PMPI_Barrier(comm); \
+ tm2 = APMPI_WTIME(); \
+ ret = FUNC; \
+ tm3 = APMPI_WTIME(); \
+ tdiff = tm3-tm2; \
+ tsync = tm2-tm1; \
+ }
#else

#define TIME_SYNC(FUNC) \
Loading