Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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

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

ACLOCAL_AMFLAGS = -I maint/config

SUBDIRS =
SUBDIRS = modules .

if BUILD_DARSHAN_RUNTIME
SUBDIRS += darshan-runtime
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,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