Skip to content

Commit

Permalink
Merge branch 'main' into upstream_main
Browse files Browse the repository at this point in the history
  • Loading branch information
vvenkates27 authored Oct 10, 2023
2 parents 3c4e29e + a1b02c6 commit 6996bfd
Show file tree
Hide file tree
Showing 36 changed files with 997 additions and 707 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/compile-rocm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/rocm-keyring.gpg
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/debian focal main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt-get update
sudo apt-get install -y rocm-hip-sdk
sudo apt-get install -y rocm-hip-runtime
- uses: actions/checkout@v3
with:
submodules: recursive
Expand All @@ -26,3 +26,9 @@ jobs:
./autogen.pl
./configure --prefix=${PWD}/install --with-rocm=/opt/rocm --disable-mpi-fortran
make -j
- name: Clean up
run: |
ls -la ./
rm -rf ./*
rm -rf ./.??*
ls -la ./
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -534,3 +534,12 @@ docs/_templates
# Common Python virtual environment directory names
venv
py??

# Copies of PRRTE RST files (i.e., not source controlled in this tree)
docs/prrte-rst-content
docs/schizo-ompi-rst-content

# Copies of the built HTML docs and man pages (for distribution
# tarballs)
docs/html
docs/man
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
Jeff Squyres <[email protected]> <[email protected]>
Jeff Squyres <[email protected]> --quiet <--quiet>
Jeff Squyres <[email protected]>
Jeff Squyres <[email protected]>

George Bosilca <[email protected]> <[email protected]>

Expand Down
36 changes: 36 additions & 0 deletions .readthedocs-pre-create-environment.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

set -euxo pipefail

# The ReadTheDocs build process does not run autogen/configure/make.
# Hence, we have to copy the PRRTE RST files (from the 3rd-party/prrte
# tree) to our docs/ tree manually.

# Ensure that we're in the RTD CI environment

if [[ "${READTHEDOCS:-no}" == "no" ]]; then
echo "This script is only intended to be run in the ReadTheDocs CI environment"
exit 1
fi

SCHIZO_SRC_DIR=3rd-party/prrte/src/mca/schizo/ompi
SCHIZO_TARGET_DIR=docs/schizo-ompi-rst-content

PRRTE_RST_SRC_DIR=3rd-party/prrte/src/docs/prrte-rst-content
PRRTE_RST_TARGET_DIR=docs/prrte-rst-content

# Copy the OMPI schizo file from PRRTE

cp -rp $SCHIZO_SRC_DIR $SCHIZO_TARGET_DIR

# Only copy the PRRTE RST source files in prrte-rst-content that are
# referenced by ".. include::" in the schizo-ompi-cli.rst file. We do
# this because Sphinx complains if there are .rst files that are not
# referenced. :-(

mkdir -p $PRRTE_RST_TARGET_DIR
files=`fgrep '.. include::' $SCHIZO_TARGET_DIR/schizo-ompi-cli.rstxt | awk '{ print $3 }'`
for file in $files; do
filename=`basename $file`
cp -pf $PRRTE_RST_SRC_DIR/$filename $PRRTE_RST_TARGET_DIR
done
8 changes: 8 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ build:
os: ubuntu-22.04
tools:
python: "3.10"
jobs:
# RTD doesn't run configure or make. So we have to manually copy
# in the PRRTE RST files to docs/.
pre_create_environment:
- ./.readthedocs-pre-create-environment.sh

python:
install:
Expand All @@ -21,3 +26,6 @@ python:
sphinx:
configuration: docs/conf.py
fail_on_warning: true

submodules:
include: all
2 changes: 1 addition & 1 deletion 3rd-party/prrte
Submodule prrte updated 117 files
9 changes: 9 additions & 0 deletions Makefile.ompi-rules
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Copyright (c) 2008-2022 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2020 Intel, Inc. All rights reserved.
# Copyright (c) 2023 Jeffrey M. Squyres. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
Expand All @@ -26,6 +27,14 @@ OMPI_V_GEN = $(ompi__v_GEN_$V)
ompi__v_GEN_ = $(ompi__v_GEN_$AM_DEFAULT_VERBOSITY)
ompi__v_GEN_0 = @echo " GENERATE" $@;

OMPI_V_COPYALL = $(ompi__v_COPYALL_$V)
ompi__v_COPYALL_ = $(ompi__v_COPYALL_$AM_DEFAULT_VERBOSITY)
ompi__v_COPYALL_0 = @echo " COPY tree $@";

OMPI_V_SPHINX_COPYRST = $(ompi__v_SPHINX_COPYRST_$V)
ompi__v_SPHINX_COPYRST_ = $(ompi__v_SPHINX_COPYRST_$AM_DEFAULT_VERBOSITY)
ompi__v_SPHINX_COPYRST_0 = @echo " COPY RST source files";

OMPI_V_SPHINX_HTML = $(ompi__v_SPHINX_HTML_$V)
ompi__v_SPHINX_HTML_ = $(ompi__v_SPHINX_HTML_$AM_DEFAULT_VERBOSITY)
ompi__v_SPHINX_HTML_0 = @echo " GENERATE HTML docs";
Expand Down
4 changes: 4 additions & 0 deletions autogen.pl
Original file line number Diff line number Diff line change
Expand Up @@ -1643,6 +1643,10 @@ sub replace_config_sub_guess {
if (! -f "3rd-party/prrte/configure.ac") {
my_die("Could not find pmix files\n");
}

verbose "Patching prrte.spec file\n";
system("$patch_prog -N -p0 < ./config/prrte.spec.diff > /dev/null 2>&1");

push(@subdirs, "3rd-party/prrte/");
$m4 .= "m4_define([package_prrte], [1])\n";

Expand Down
7 changes: 5 additions & 2 deletions config/ompi_check_ucx.m4
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ AC_DEFUN([OMPI_CHECK_UCX],[
UCP_ATOMIC_FETCH_OP_FXOR,
UCP_PARAM_FIELD_ESTIMATED_NUM_PPN,
UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK,
UCP_OP_ATTR_FLAG_MULTI_SEND],
UCP_OP_ATTR_FLAG_MULTI_SEND,
UCS_MEMORY_TYPE_RDMA,
UCP_MEM_MAP_SYMMETRIC_RKEY],
[], [],
[#include <ucp/api/ucp.h>])
AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS],
Expand All @@ -123,7 +125,8 @@ AC_DEFUN([OMPI_CHECK_UCX],[
[#include <ucp/api/ucp.h>])
AC_CHECK_DECLS([ucp_tag_send_nbx,
ucp_tag_send_sync_nbx,
ucp_tag_recv_nbx],
ucp_tag_recv_nbx,
ucp_rkey_compare],
[], [],
[#include <ucp/api/ucp.h>])
AC_CHECK_TYPES([ucp_request_param_t],
Expand Down
59 changes: 52 additions & 7 deletions config/ompi_setup_prrte.m4
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ dnl Copyright (c) 2019-2020 Intel, Inc. All rights reserved.
dnl Copyright (c) 2020-2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
dnl Copyright (c) 2021 Nanook Consulting. All rights reserved.
dnl Copyright (c) 2021-2022 IBM Corporation. All rights reserved.
dnl Copyright (c) 2023 Jeffrey M. Squyres. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
Expand All @@ -35,10 +36,25 @@ dnl
dnl A Makefile conditional OMPI_WANT_PRRTE will be defined based on the
dnl results of the build.
AC_DEFUN([OMPI_SETUP_PRRTE],[
OPAL_VAR_SCOPE_PUSH([prrte_setup_internal_happy prrte_setup_external_happy])
AC_REQUIRE([AC_PROG_LN_S])
OPAL_VAR_SCOPE_PUSH([prrte_setup_internal_happy prrte_setup_external_happy target_rst_dir])
opal_show_subtitle "Configuring PRRTE"
# We *must* have setup Sphinx before invoking this macro (i.e., it
# is a programming error -- not a run-time error -- if Sphinx was
# not previously setup).
OAC_ASSERT_BEFORE([OAC_SETUP_SPHINX], [OMPI_SETUP_PRRTE])
# These are sym links to folders with PRRTE's RST files that we'll
# slurp into mpirun.1.rst. We'll remove these links (or even
# accidental full copies) now and replace them with new links to
# the PRRTE that we find, below.
target_rst_dir="$OMPI_TOP_BUILDDIR/docs"
rm -rf "$target_rst_dir/prrte-rst-content"
rm -rf "$target_rst_dir/schizo-ompi-rst-content"
OPAL_3RDPARTY_WITH([prrte], [prrte], [package_prrte], [1])
AC_ARG_WITH([prrte-bindir],
Expand Down Expand Up @@ -101,12 +117,15 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
[$OMPI_USING_INTERNAL_PRRTE],
[Whether or not we are using the internal PRRTE])
OPAL_SUMMARY_ADD([Miscellaneous], [prrte], [], [$opal_prrte_mode])
AC_SUBST(OMPI_PRRTE_RST_CONTENT_DIR)
AC_SUBST(OMPI_SCHIZO_OMPI_RST_CONTENT_DIR)
AM_CONDITIONAL(OMPI_HAVE_PRRTE_RST, [test $OMPI_HAVE_PRRTE_RST -eq 1])
OPAL_SUMMARY_ADD([Miscellaneous], [PRRTE], [], [$opal_prrte_mode])
OPAL_VAR_SCOPE_POP
])


dnl _OMPI_SETUP_PRRTE_INTERNAL([action-if-success], [action-if-not-success])
dnl
dnl Attempt to configure the built-in PRRTE.
Expand Down Expand Up @@ -220,7 +239,15 @@ AC_DEFUN([_OMPI_SETUP_PRRTE_INTERNAL], [
[AC_MSG_ERROR([PRRTE configuration failed. Cannot continue.])])
AS_IF([test "$internal_prrte_happy" = "yes"],
[$1], [$2])
[AC_MSG_CHECKING([for internal PRRTE RST files])
AS_IF([test -n "$SPHINX_BUILD"],
[OMPI_HAVE_PRRTE_RST=1
OMPI_PRRTE_RST_CONTENT_DIR="$OMPI_TOP_SRCDIR/3rd-party/prrte/src/docs/prrte-rst-content"
OMPI_SCHIZO_OMPI_RST_CONTENT_DIR="$OMPI_TOP_SRCDIR/3rd-party/prrte/src/mca/schizo/ompi"
AC_MSG_RESULT([found])],
[AC_MSG_RESULT([not found])])
$1],
[$2])
OPAL_VAR_SCOPE_POP
])
Expand Down Expand Up @@ -284,9 +311,27 @@ AC_DEFUN([_OMPI_SETUP_PRRTE_EXTERNAL], [
[AC_DEFINE_UNQUOTED([OMPI_PRTERUN_PATH], ["${prterun_path}"], [Path to prterun])])
AS_IF([test "$setup_prrte_external_happy" = "yes"],
[$1], [$2])
[ # Determine if this external PRRTE has installed the RST
# directories that we care about
AC_MSG_CHECKING([for external PRRTE RST files])
prrte_install_dir=${with_prrte}/share/prte/rst
AS_IF([test -n "$SPHINX_BUILD"],
[AS_IF([test -d "$prrte_install_dir/prrte-rst-content" && \
test -d "$prrte_install_dir/schizo-ompi-rst-content"],
[OMPI_HAVE_PRRTE_RST=1
OMPI_PRRTE_RST_CONTENT_DIR="$prrte_install_dir/prrte-rst-content"
OMPI_SCHIZO_OMPI_RST_CONTENT_DIR="$prrte_install_dir/schizo-ompi-rst-content"
AC_MSG_RESULT([found])
],
[ # This version of PRRTE doesn't have installed RST
# files.
AC_MSG_RESULT([not found])
OMPI_HAVE_PRRTE_RST=0
])
])
$1],
[$2])
OPAL_VAR_SCOPE_POP
])


20 changes: 20 additions & 0 deletions config/prrte.spec.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- 3rd-party/prrte/contrib/dist/linux/prrte.spec 2023-10-03 08:12:43.842625000 -0400
+++ 3rd-party/prrte/contrib/dist/linux/prrte.spec 2023-10-03 08:12:27.849686000 -0400
@@ -612,7 +612,7 @@
%{shell_scripts_path}/%{shell_scripts_basename}.sh
%{shell_scripts_path}/%{shell_scripts_basename}.csh
%endif
-%doc README INSTALL LICENSE
+%doc README.md LICENSE

%else

@@ -656,7 +656,7 @@
%{shell_scripts_path}/%{shell_scripts_basename}.sh
%{shell_scripts_path}/%{shell_scripts_basename}.csh
%endif
-%doc README INSTALL LICENSE
+%doc README.md LICENSE
%{_pkgdatadir}

%files devel -f devel.files
3 changes: 2 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
# Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
# Copyright (c) 2019 Triad National Security, LLC. All rights
# reserved.
# Copyright (c) 2023 Jeffrey M. Squyres. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
Expand Down Expand Up @@ -1072,7 +1073,7 @@ AS_IF([test -z "$LEX" || \

dnl Note that we have to double escape the URL below
dnl so that the # it contains doesn't confuse the Autotools
OAC_SETUP_SPHINX([$srcdir/docs/_build/man/MPI_T.3],
OAC_SETUP_SPHINX([$srcdir/docs/man/MPI_T.3],
[[https://docs.open-mpi.org/en/main/developers/prerequisites.html#sphinx-and-therefore-python]])

#
Expand Down
1 change: 0 additions & 1 deletion contrib/ompi_cplusplus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@
./opal/util/few.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/keyval_parse.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/malloc.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/opal_pty.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/os_path.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/qsort.h: defined(c_plusplus) defined(__cplusplus)
./opal/util/show_help_lex.h: defined(c_plusplus) defined(__cplusplus)
Expand Down
Loading

0 comments on commit 6996bfd

Please sign in to comment.