Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
document new option
authorAugustin Degomme <adegomme@users.noreply.github.com>
Thu, 27 May 2021 14:47:48 +0000 (16:47 +0200)
committerAugustin Degomme <adegomme@users.noreply.github.com>
Thu, 27 May 2021 14:55:28 +0000 (16:55 +0200)
ChangeLog
docs/source/Configuring_SimGrid.rst

index 44d6cd4..08ed0cc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,7 +15,9 @@ SMPI:
  - The default SMPI compiler flags are no more taken from the environment.
    They can be explicitly set through cmake parameters SMPI_C_FLAGS,
    SMPI_CXX_FLAGS, or SMPI_Fortran_FLAGS.
-
+ - New option: --cfg=smpi/finalization-barrier, which can be used to add
+   a barrier inside MPI_Finalize. This can help for some codes which cleanup
+   data attached to a process, but still used in other SMPI processes.
 LUA:
  - Lua platform files are deprecated. Their support will be dropped after v3.31.
 
index a5497a8..b59b43e 100644 (file)
@@ -150,6 +150,7 @@ Existing Configuration Items
 - **smpi/cpu-threshold:** :ref:`cfg=smpi/cpu-threshold`
 - **smpi/display-allocs:** :ref:`cfg=smpi/display-allocs`
 - **smpi/display-timing:** :ref:`cfg=smpi/display-timing`
+- **smpi/finalization-barrier:** :ref:`cfg=smpi/finalization-barrier`
 - **smpi/grow-injected-times:** :ref:`cfg=smpi/grow-injected-times`
 - **smpi/host-speed:** :ref:`cfg=smpi/host-speed`
 - **smpi/IB-penalty-factors:** :ref:`cfg=smpi/IB-penalty-factors`
@@ -1308,6 +1309,22 @@ Each collective operation can be manually selected with a
 .. TODO:: All available collective algorithms will be made available
           via the ``smpirun --help-coll`` command.
 
+Add a barrier in MPI_Finalize
+.............................
+
+.. _cfg=smpi/finalization-barrier:
+
+**Option** ``smpi/finalization-barrier`` **default:** off
+
+By default, SMPI processes are destroyed as soon as soon as their code ends,
+so after a successful MPI_Finalize call returns. In some rare cases, some data
+might have been attached to MPI objects still active in the remaining processes,
+and can be destroyed eagerly by the finished process.
+If your code shows issues at finalization, such as segmentation fault, triggering
+this option will add an explicit MPI_Barrier(MPI_COMM_WORLD) call inside the
+MPI_Finalize, so that all processes will terminate at almost the same point.
+It might affect the total timing by the cost of a barrier.
+
 .. _cfg=smpi/iprobe:
 
 Inject constant times for MPI_Iprobe