Skip to content

Commit ad80b29

Browse files
committed
Set default hint to cb_noodes=1 when OpenMPI is used
This is because OpenMPI's implementation may serialize the I/O. See open-mpi/ompi#13376
1 parent ff5060a commit ad80b29

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

darshan-runtime/configure.ac

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -701,16 +701,29 @@ if test "x$enable_darshan_runtime" = xyes ; then
701701
fi
702702

703703
if test "x$GOT_LOG_HINTS" != xyes ; then
704-
if test "x$is_ompi" = x1 && test "x$ompi_ge_5_0_6" = x0 ; then
704+
if test "x$is_ompi" = x1 ; then
705705
# OpenMPI 5.0.5 and priors contain a bug that can corrupt the
706706
# Darshan log files. The bug is related to file locking protocols
707707
# implemented when data sieving is enabled. Setting hint cb_nodes
708708
# to 1 can avoid the bug, but may make writing log files slow.
709709
# For more information, see PR 1070,
710710
# https://github.com/darshan-hpc/darshan/pull/1070
711-
__DARSHAN_LOG_HINTS_DEFAULT="romio_no_indep_rw=true;cb_nodes=1"
712-
else
713-
__DARSHAN_LOG_HINTS_DEFAULT="romio_no_indep_rw=true;cb_nodes=4"
711+
#
712+
# However, 5.0.6 and later can cause serialization of file writes
713+
# See https://github.com/open-mpi/ompi/issues/13376
714+
# To mimize the performance impact of writing the log file, we set
715+
# hint cb_nodes to 1.
716+
#
717+
# Note hint romio_no_indep_rw is an MPI thing, not implemented in
718+
# OpenMPI.
719+
#
720+
__DARSHAN_LOG_HINTS_DEFAULT="cb_nodes=1"
721+
722+
# if test "x$ompi_ge_5_0_6" = x0 ; then
723+
# __DARSHAN_LOG_HINTS_DEFAULT="romio_no_indep_rw=true;cb_nodes=1"
724+
# else
725+
# __DARSHAN_LOG_HINTS_DEFAULT="romio_no_indep_rw=true;cb_nodes=4"
726+
# fi
714727
fi
715728
dnl use default hints
716729
AC_DEFINE_UNQUOTED([__DARSHAN_LOG_HINTS], "$__DARSHAN_LOG_HINTS_DEFAULT",

0 commit comments

Comments
 (0)