Skip to content
Snippets Groups Projects
Commit 20f08241 authored by Isaías A. Comprés Ureña's avatar Isaías A. Comprés Ureña Committed by Danny Auble
Browse files

Add PMIX v5 functionality to Slurm

Bug 12396
parent 4182b6dc
No related branches found
No related tags found
No related merge requests found
......@@ -192,6 +192,7 @@ documents those changes that are of interest to users and administrators.
'scontrol delete/update NodeName=ALL' or 'scontrol delete/update
NodeName=ns1,nodes[1-3]').
-- Add support for PMIx v4
-- Add support for PMIx v5
 
* Changes in Slurm 21.08.8
==========================
......
......@@ -2,6 +2,7 @@
# AUTHOR:
# Artem Polyakov <artpol84@gmail.com>
# Ralph Castain <ralph.h.castain@intel.com>
# Isaias Compres <isaias.compres@tum.de>
#
# SYNOPSIS:
# X_AC_PMIX
......@@ -18,6 +19,7 @@ AC_DEFUN([X_AC_PMIX],
_x_ac_pmix_v2_found="0"
_x_ac_pmix_v3_found="0"
_x_ac_pmix_v4_found="0"
_x_ac_pmix_v5_found="0"
AC_ARG_WITH(
[pmix],
......@@ -59,6 +61,13 @@ AC_DEFUN([X_AC_PMIX],
_x_ac_pmix_version="0"
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
#include <pmix_version.h>
#if (PMIX_VERSION_MAJOR != 5L)
#error "not version 5"
#endif
], [ ] )],
[ _x_ac_pmix_version="5" ],
[ AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
#include <pmix_version.h>
#if (PMIX_VERSION_MAJOR != 4L)
#error "not version 4"
......@@ -81,6 +90,7 @@ AC_DEFUN([X_AC_PMIX],
[ _x_ac_pmix_version="2" ] )
])
])
])
CPPFLAGS="$_x_ac_pmix_cppflags_save"
LIBS="$_x_ac_pmix_libs_save"
......@@ -140,6 +150,24 @@ AC_DEFUN([X_AC_PMIX],
# symlink of lib.
break
fi
if [test "$_x_ac_pmix_version" = "5"]; then
if [test "$_x_ac_pmix_v5_found" = "1" ]; then
m4_define([err_pmix_v5],[error processing $x_ac_cv_pmix_libdir: PMIx v5.x])
AC_MSG_ERROR(err_pmix_v5 err_pmix)
fi
_x_ac_pmix_v5_found="1"
PMIX_V5_CPPFLAGS="-I$x_ac_cv_pmix_dir/include"
if test "$ac_with_rpath" = "yes"; then
PMIX_V5_LDFLAGS="-Wl,-rpath -Wl,$x_ac_cv_pmix_libdir -L$x_ac_cv_pmix_libdir"
else
PMIX_V5_CPPFLAGS=$PMIX_V5_CPPFLAGS" -DPMIXP_V5_LIBPATH=\\\"$x_ac_cv_pmix_libdir\\\""
fi
# We don't want to search the other lib after we found it in
# one place or we might report a false duplicate if lib64 is a
# symlink of lib.
break
fi
done
done
])
......@@ -152,9 +180,11 @@ AC_DEFUN([X_AC_PMIX],
AC_SUBST(PMIX_V3_LDFLAGS)
AC_SUBST(PMIX_V4_CPPFLAGS)
AC_SUBST(PMIX_V4_LDFLAGS)
AC_SUBST(PMIX_V5_CPPFLAGS)
AC_SUBST(PMIX_V5_LDFLAGS)
if test $_x_ac_pmix_v2_found = 0 &&
test $_x_ac_pmix_v3_found = 0 && test $_x_ac_pmix_v4_found = 0; then
if test $_x_ac_pmix_v2_found = 0 && test $_x_ac_pmix_v3_found = 0 &&
test $_x_ac_pmix_v4_found = 0 && test $_x_ac_pmix_v5_found = 0; then
if test -z "$with_pmix"; then
AC_MSG_WARN([unable to locate pmix installation])
else
......@@ -169,4 +199,5 @@ AC_DEFUN([X_AC_PMIX],
AM_CONDITIONAL(HAVE_PMIX_V2, [test $_x_ac_pmix_v2_found = "1"])
AM_CONDITIONAL(HAVE_PMIX_V3, [test $_x_ac_pmix_v3_found = "1"])
AM_CONDITIONAL(HAVE_PMIX_V4, [test $_x_ac_pmix_v4_found = "1"])
AM_CONDITIONAL(HAVE_PMIX_V5, [test $_x_ac_pmix_v5_found = "1"])
])
......@@ -63,6 +63,22 @@ mpi_pmix_v4_la_CPPFLAGS = $(AM_CPPFLAGS) $(PMIX_V4_CPPFLAGS) -DHAVE_PMIX_VER=4
endif
if HAVE_PMIX_V5
pkglib_v5dir=$(pkglibdir)
pkglib_v5_LTLIBRARIES = mpi_pmix_v5.la
mpi_pmix_v5_la_SOURCES = $(pmix_src) pmixp_client_v2.c
mpi_pmix_v5_la_LIBADD = $(pmix_libadd)
mpi_pmix_v5_la_LDFLAGS = $(pmix_ldflags) $(PMIX_V5_LDFLAGS)
mpi_pmix_v5_la_CPPFLAGS = $(AM_CPPFLAGS) $(PMIX_V5_CPPFLAGS) -DHAVE_PMIX_VER=5
endif
if HAVE_PMIX_V5
mpi_pmix_so := mpi_pmix_v5.so
else
if HAVE_PMIX_V4
mpi_pmix_so := mpi_pmix_v4.so
else
......@@ -77,6 +93,7 @@ mpi_pmix_so := mpi_pmix_v2.so
endif
endif
endif
endif
install-exec-hook:
rm -rf $(DESTDIR)$(pkglibdir)/mpi_pmix.so
......
......@@ -86,6 +86,8 @@ const char plugin_type[] = "mpi/pmix_v2";
const char plugin_type[] = "mpi/pmix_v3";
#elif (HAVE_PMIX_VER == 4)
const char plugin_type[] = "mpi/pmix_v4";
#elif (HAVE_PMIX_VER == 5)
const char plugin_type[] = "mpi/pmix_v5";
#endif
const uint32_t plugin_version = SLURM_VERSION_NUMBER;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment