Quellcode durchsuchen

Add option --enable-mpi-ft to configure.ac
Add the flag STARPU_USE_MPI_FT for dev purposes.

Romain LION vor 5 Jahren
Ursprung
Commit
04d4ecffb6
4 geänderte Dateien mit 33 neuen und 4 gelöschten Zeilen
  1. 23 0
      configure.ac
  2. 1 0
      include/starpu_config.h.in
  3. 2 2
      mpi/include/starpu_mpi.h
  4. 7 2
      mpi/tests/Makefile.am

+ 23 - 0
configure.ac

@@ -93,6 +93,7 @@ if test x$enable_perf_debug = xyes; then
 fi
 default_enable_mpi_check=maybe
 default_enable_mpi=maybe
+default_enable_mpi_ft=no
 
 ###############################################################################
 #                                                                             #
@@ -549,6 +550,27 @@ AM_CONDITIONAL(STARPU_USE_MPI_MPI, test x$build_mpi_lib = xyes)
 AM_CONDITIONAL(STARPU_USE_MPI_NMAD, test x$build_nmad_lib = xyes)
 AM_CONDITIONAL(STARPU_USE_MPI, test x$build_nmad_lib = xyes -o x$build_mpi_lib = xyes)
 
+
+######    Failure tolerance material  #######
+AC_ARG_ENABLE(mpi-ft, AC_HELP_STRING([--enable-mpi-ft], [Enable failure tolerance mechanisms provided by StarPU]),
+	      [enable_mpi_ft=$enableval], [enable_mpi_ft=$default_enable_mpi_ft])
+
+# TODO: Check MPI version to be ULFM
+if test x$enable_mpi_ft = xyes ; then
+    if test x$build_mpi_lib != xyes ; then
+        AC_MSG_ERROR([Failure tolerance mechanisms only work with a particular MPI implementation: ULFM (OpenMPI based).])
+    else
+        AC_DEFINE(STARPU_USE_MPI_FT, [1], [whether the StarPU MPI failure tolerance mechanisms are requested])
+        use_mpi_ft=yes;
+    fi
+fi
+
+AM_CONDITIONAL(STARPU_USE_MPI_FT, [test x$use_mpi_ft = xyes])
+
+###### End of failure tolerance material ######
+
+
+
 AC_ARG_WITH(mpiexec-args, [AS_HELP_STRING([--with-mpiexec-args[=<arguments to give when running mpiexec>]],
 					  [Arguments for mpiexec])],
 	    [
@@ -3585,6 +3607,7 @@ AC_MSG_NOTICE([
 
 	StarPU Extensions:
 	       StarPU MPI enabled:                            $build_mpi_lib
+	       StarPU MPI failure tolerance:                  $enable_mpi_ft
 	       StarPU MPI(nmad) enabled:                      $build_nmad_lib
 	       MPI test suite:                                $running_mpi_check
 	       Master-Slave MPI enabled:                      $use_mpi_master_slave

+ 1 - 0
include/starpu_config.h.in

@@ -118,6 +118,7 @@
 #undef STARPU_USE_MPI
 #undef STARPU_USE_MPI_MPI
 #undef STARPU_USE_MPI_NMAD
+#undef STARPU_USE_MPI_FT
 
 #undef STARPU_ATLAS
 #undef STARPU_GOTO

+ 2 - 2
mpi/include/starpu_mpi.h

@@ -24,9 +24,9 @@
 #include <mpi.h>
 #include <stdint.h>
 
-//TODO: #if defined(STARPU_USE_MPI_FT)
+#if defined(STARPU_USE_MPI_FT)
 #include <starpu_mpi_ft.h>
-//#endif
+#endif
 
 #ifdef __cplusplus
 extern "C"

+ 7 - 2
mpi/tests/Makefile.am

@@ -200,7 +200,6 @@ noinst_PROGRAMS =				\
 	cache					\
 	cache_disable				\
 	callback				\
-	checkpoints				\
 	matrix					\
 	matrix2					\
 	insert_task				\
@@ -235,7 +234,13 @@ noinst_PROGRAMS =				\
 	driver					\
 	sendrecv_bench				\
 	sendrecv_gemm_bench			\
-	sendrecv_parallel_tasks_bench
+	sendrecv_parallel_tasks_bench\
+	checkpoints
+
+if STARPU_USE_MPI_FT
+noinst_PROGRAMS +=
+	checkpoints2
+endif
 
 XFAIL_TESTS=					\
 	policy_register_toomany			\