Skip to content

Commit

Permalink
Merge branch 'open-mpi:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
amd-nithyavs authored May 6, 2024
2 parents 384c2a7 + 4890203 commit 17f8c74
Show file tree
Hide file tree
Showing 98 changed files with 7,978 additions and 1,568 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/compile-ze.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: OneAPI ZE

on: [pull_request]

jobs:
compile-ze:
runs-on: ubuntu-22.04
steps:
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y --no-install-recommends wget lsb-core software-properties-common gpg curl cmake git
- name: Build OneAPI ZE
run: |
git clone https://github.com/oneapi-src/level-zero.git
cd level-zero
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/ze
sudo make -j install
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build Open MPI
run: |
./autogen.pl
#
# we have to disable romio as its old ze stuff doesn't compile with supported ZE API
#
./configure --prefix=${PWD}/install --disable-mpi-fortran --disable-io-romio --disable-oshmem --with-ze
make -j
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "prrte"]
path = 3rd-party/prrte
url = ../../openpmix/prrte
url = ../../open-mpi/prrte
branch = master
[submodule "openpmix"]
path = 3rd-party/openpmix
Expand Down
2 changes: 1 addition & 1 deletion 3rd-party/openpmix
Submodule openpmix updated 91 files
+65 −0 .github/workflows/close-stale-issues.yaml
+30 −0 .github/workflows/remove-awaiting-user-info-label.yaml
+2 −0 .gitignore
+66 −19 autogen.pl
+1 −1 config/oac
+16 −18 config/pmix.m4
+2 −0 docs/Makefile.am
+1 −1 docs/conf.py
+13 −0 docs/developers/autogen.rst
+2 −0 docs/how-things-work/index.rst
+12 −0 docs/how-things-work/schedulers/index.rst
+23 −0 docs/how-things-work/schedulers/overview.rst
+12 −0 docs/how-things-work/sets_groups/index.rst
+75 −0 docs/how-things-work/sets_groups/overview.rst
+51 −0 docs/how-things-work/sets_groups/psets.rst
+6 −0 docs/installing-pmix/quickstart.rst
+7 −0 docs/man/man1/index.rst
+125 −0 docs/man/man1/palloc.1.rst
+87 −0 docs/man/man1/pattrs.1.rst
+59 −0 docs/man/man1/pevent.1.rst
+62 −0 docs/man/man1/plookup.1.rst
+104 −11 docs/man/man1/pmix_info.1.rst
+132 −0 docs/man/man1/pmixcc.1.rst
+71 −0 docs/man/man1/pps.1.rst
+80 −0 docs/man/man1/pquery.1.rst
+13 −3 examples/Makefile.am
+7 −2 examples/asyncgroup.c
+22 −2 examples/client.c
+206 −0 examples/client3.c
+130 −58 examples/dynamic.c
+109 −7 examples/group.c
+224 −0 examples/group_bootstrap.c
+11 −7 examples/group_dmodex.c
+10 −5 examples/group_lcl_cid.c
+3 −2 include/pmix.h
+38 −1 include/pmix_common.h.in
+3 −1 src/client/pmix_client.c
+1 −2 src/client/pmix_client_convert.c
+16 −4 src/client/pmix_client_fence.c
+77 −42 src/client/pmix_client_get.c
+486 −58 src/client/pmix_client_group.c
+4 −1 src/client/pmix_client_ops.h
+85 −26 src/client/pmix_client_spawn.c
+20 −14 src/common/pmix_attributes.c
+15 −1 src/common/pmix_strings.c
+8 −6 src/event/pmix_event_notification.c
+9 −4 src/hwloc/pmix_hwloc.c
+4 −1 src/include/pmix_globals.c
+36 −1 src/include/pmix_globals.h
+9 −3 src/mca/base/pmix_mca_base_var.c
+3 −1 src/mca/bfrops/base/base.h
+6 −1 src/mca/bfrops/base/bfrop_base_copy.c
+2 −2 src/mca/bfrops/base/bfrop_base_fns.c
+31 −1 src/mca/bfrops/base/bfrop_base_tma.h
+2 −2 src/mca/gds/hash/gds_hash.c
+0 −184 src/mca/gds/shmem/gds_shmem_utils.h
+22 −22 src/mca/gds/shmem2/Makefile.am
+7 −7 src/mca/gds/shmem2/configure.m4
+987 −362 src/mca/gds/shmem2/gds_shmem2.c
+50 −58 src/mca/gds/shmem2/gds_shmem2.h
+17 −24 src/mca/gds/shmem2/gds_shmem2_component.c
+44 −49 src/mca/gds/shmem2/gds_shmem2_fetch.c
+5 −4 src/mca/gds/shmem2/gds_shmem2_fetch.h
+38 −41 src/mca/gds/shmem2/gds_shmem2_store.c
+7 −7 src/mca/gds/shmem2/gds_shmem2_store.h
+63 −63 src/mca/gds/shmem2/gds_shmem2_utils.c
+193 −0 src/mca/gds/shmem2/gds_shmem2_utils.h
+4 −3 src/mca/gds/shmem2/help-gds-shmem2.txt
+27 −3 src/mca/ptl/base/ptl_base_frame.c
+6 −1 src/runtime/pmix_init.c
+6 −1 src/runtime/pmix_params.c
+3 −1 src/server/Makefile.include
+88 −57 src/server/pmix_server.c
+1,428 −0 src/server/pmix_server_group.c
+63 −1,153 src/server/pmix_server_ops.c
+9 −0 src/server/pmix_server_ops.h
+2 −2 src/tools/plookup/help-plookup.txt
+5 −5 src/tools/pmix_info/help-pmix-info.txt
+6 −1 src/tools/pquery/pquery.c
+14 −24 src/util/pmix_hash.c
+1 −1 src/util/pmix_os_dirpath.c
+5 −1 test/simple/gwtest.c
+5 −0 test/simple/legacy.c
+25 −6 test/simple/quietclient.c
+25 −7 test/simple/simpclient.c
+9 −2 test/simple/simpcoord.c
+5 −1 test/simple/simpcycle.c
+27 −17 test/simple/simpdist.c
+21 −5 test/simple/simpdmodex.c
+5 −2 test/simple/simptest.c
+13 −3 test/simple/stability.c
2 changes: 1 addition & 1 deletion 3rd-party/prrte
Submodule prrte updated 98 files
+65 −0 .github/workflows/close-stale-issues.yaml
+30 −0 .github/workflows/remove-awaiting-user-info-label.yaml
+1 −1 VERSION
+1 −1 config/oac
+1 −13 config/prte_setup_pmix.m4
+3 −2 configure.ac
+3 −1 docs/Makefile.am
+1 −1 docs/conf.py
+13 −0 docs/how-things-work/index.rst
+28 −0 docs/how-things-work/schedulers/flow_of_control.rst
+14 −0 docs/how-things-work/schedulers/index.rst
+23 −0 docs/how-things-work/schedulers/overview.rst
+270 −0 docs/how-things-work/schedulers/structures.rst
+115 −0 docs/how-things-work/session_dirs.rst
+2 −0 docs/index.rst
+1 −1 docs/news/index.rst
+101 −1 docs/news/news-v3.x.rst
+24 −7 docs/session-directory.rst
+29 −0 docs/terminology.rst
+1 −4 src/docs/show-help-files/help-prte.rst
+1 −4 src/docs/show-help-files/help-prterun.rst
+9 −1 src/docs/show-help-files/help-prun.rst
+18 −16 src/hwloc/hwloc_base_util.c
+1 −1 src/mca/errmgr/dvm/errmgr_dvm.c
+2 −27 src/mca/ess/base/ess_base_bootstrap.c
+0 −6 src/mca/ess/base/ess_base_std_prted.c
+3 −4 src/mca/ess/hnp/ess_hnp_module.c
+18 −1 src/mca/grpcomm/base/grpcomm_base_frame.c
+139 −25 src/mca/grpcomm/base/grpcomm_base_stubs.c
+190 −119 src/mca/grpcomm/direct/grpcomm_direct.c
+9 −1 src/mca/grpcomm/grpcomm.h
+11 −7 src/mca/odls/base/odls_base_default_fns.c
+140 −2 src/mca/plm/base/plm_base_frame.c
+3 −3 src/mca/plm/base/plm_base_launch_support.c
+75 −2 src/mca/plm/base/plm_base_receive.c
+11 −6 src/mca/plm/base/plm_base_select.c
+7 −10 src/mca/plm/pals/plm_pals_module.c
+4 −4 src/mca/ras/base/ras_base_allocate.c
+2 −1 src/mca/ras/testrm/ras_testrm.c
+1 −1 src/mca/rmaps/base/rmaps_base_frame.c
+3 −3 src/mca/rmaps/base/rmaps_base_map_job.c
+15 −19 src/mca/rmaps/base/rmaps_base_support_fns.c
+6 −7 src/mca/rmaps/ppr/rmaps_ppr.c
+3 −1 src/mca/rmaps/rank_file/Makefile.am
+2 −7 src/mca/rmaps/rank_file/rmaps_rank_file.c
+1 −2 src/mca/rmaps/round_robin/rmaps_rr.c
+3 −7 src/mca/rmaps/round_robin/rmaps_rr_mappers.c
+2 −2 src/mca/rmaps/seq/rmaps_seq.c
+3 −3 src/mca/schizo/base/schizo_base_stubs.c
+10 −4 src/mca/schizo/mpich/schizo_mpich.c
+4 −4 src/mca/schizo/ompi/schizo_ompi.c
+5 −6 src/mca/schizo/prte/schizo_prte.c
+0 −1 src/mca/state/base/state_base_fns.c
+2 −3 src/mca/state/base/state_base_options.c
+14 −1 src/mca/state/dvm/state_dvm.c
+0 −1 src/mca/state/prted/state_prted.c
+4 −2 src/prted/pmix/Makefile.am
+118 −32 src/prted/pmix/pmix_server.c
+339 −0 src/prted/pmix/pmix_server_allocate.c
+242 −187 src/prted/pmix/pmix_server_dyn.c
+1 −2 src/prted/pmix/pmix_server_fence.c
+3 −275 src/prted/pmix/pmix_server_gen.c
+466 −0 src/prted/pmix/pmix_server_group.c
+25 −3 src/prted/pmix/pmix_server_internal.h
+54 −6 src/prted/pmix/pmix_server_queries.c
+11 −12 src/prted/pmix/pmix_server_register_fns.c
+339 −175 src/prted/pmix/pmix_server_session.c
+12 −8 src/prted/prte_app_parse.c
+0 −1 src/prted/prted_comm.c
+1 −103 src/prted/prun_common.c
+3 −2 src/rml/rml.c
+14 −13 src/rml/rml_types.h
+13 −1 src/runtime/data_type_support/prte_dt_copy_fns.c
+82 −1 src/runtime/data_type_support/prte_dt_packing_fns.c
+26 −11 src/runtime/data_type_support/prte_dt_print_fns.c
+107 −2 src/runtime/data_type_support/prte_dt_unpacking_fns.c
+0 −1 src/runtime/prte_finalize.c
+198 −2 src/runtime/prte_globals.c
+38 −2 src/runtime/prte_globals.h
+22 −2 src/runtime/prte_init.c
+0 −7 src/runtime/prte_mca_params.c
+124 −14 src/tools/prte/prte.c
+2 −3 src/tools/prte_info/prte_info.c
+11 −42 src/tools/prted/prted.c
+15 −13 src/tools/prun/prun.c
+0 −3 src/tools/psched/backend.c
+1 −14 src/tools/psched/event.c
+11 −35 src/tools/psched/psched.c
+2 −5 src/tools/psched/queries.c
+15 −1 src/tools/psched/scheduler.c
+2 −1 src/tools/psched/schizo.c
+1 −2 src/tools/psched/server.c
+1 −8 src/tools/psched/state.c
+3 −22 src/tools/pterm/pterm.c
+7 −1 src/util/attr.c
+7 −1 src/util/attr.h
+2 −1 src/util/dash_host/dash_host.c
+4 −4 src/util/session_dir.c
6 changes: 6 additions & 0 deletions config/ompi_fortran_check_asynchronous.m4
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2024 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
Expand All @@ -35,6 +37,10 @@ SUBROUTINE binky(buf)
REAL, DIMENSION(*), ASYNCHRONOUS :: buf
END SUBROUTINE
END INTERFACE
CONTAINS
SUBROUTINE wookie(buf)
REAL, DIMENSION(*), ASYNCHRONOUS :: buf
END SUBROUTINE
END MODULE asynch_mod]])],
[AS_VAR_SET(asynchronous_var, yes)],
[AS_VAR_SET(asynchronous_var, no)])
Expand Down
27 changes: 26 additions & 1 deletion config/ompi_fortran_check_ignore_tkr.m4
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2024 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
Expand Down Expand Up @@ -82,6 +84,12 @@ AC_DEFUN([_OMPI_FORTRAN_CHECK_IGNORE_TKR], [
[!GCC\$ ATTRIBUTES NO_ARG_CHECK ::], [type(*), dimension(*)],
[!GCC\$ ATTRIBUTES NO_ARG_CHECK],
[internal_ignore_tkr_happy=1], [internal_ignore_tkr_happy=0])])
# LLVM compilers
AS_IF([test $internal_ignore_tkr_happy -eq 0],
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
[!DIR\$ IGNORE_TKR], [type(*)],
[!DIR\$ IGNORE_TKR],
[internal_ignore_tkr_happy=1], [internal_ignore_tkr_happy=0])])
# Intel compilers
AS_IF([test $internal_ignore_tkr_happy -eq 0],
[OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB(
Expand Down Expand Up @@ -133,6 +141,7 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [
AC_MSG_CHECKING([for Fortran compiler support of $3])
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[[!
! Autoconf puts "program main" at the top
implicit none

interface
subroutine force_assumed_shape(a, count)
Expand All @@ -157,6 +166,7 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [
complex, pointer, dimension(:,:) :: ptr
target :: buffer3
integer :: buffer4
integer :: a
ptr => buffer3

! Set some known values (somewhat irrelevant for this test, but just be
Expand Down Expand Up @@ -189,8 +199,23 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [
call foo(a, count)
end subroutine force_assumed_shape

module check_ignore_tkr
interface
subroutine foobar(buffer, count)
$1 buffer
$2, intent(in) :: buffer
integer, intent(in) :: count
end subroutine foobar
end interface
end module

subroutine bar(var)
use check_ignore_tkr
implicit none
real, intent(inout) :: var(:, :, :)

call foobar(var(1,1,1), 1)
! Autoconf puts "end" after the last line
subroutine bogus
]]),
[msg=yes
ompi_fortran_ignore_tkr_predecl="$1"
Expand Down
4 changes: 2 additions & 2 deletions config/opal_check_cuda.m4
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ AC_ARG_WITH([cuda-libdir],
[Search for CUDA libraries in DIR])],
[],
[AS_IF([test -d "$with_cuda"],
[with_cuda_libdir=$(dirname $(find $with_cuda -name libcuda.so 2> /dev/null) 2> /dev/null)],
[with_cuda_libdir=$(dirname $(find /usr/local/cuda -name libcuda.so 2> /dev/null) 2> /dev/null)])
[with_cuda_libdir=$(dirname $(find -H $with_cuda -name libcuda.so 2> /dev/null) 2> /dev/null)],
[with_cuda_libdir=$(dirname $(find -H /usr/local/cuda -name libcuda.so 2> /dev/null) 2> /dev/null)])
])
# Note that CUDA support is off by default. To turn it on, the user has to
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-help.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ information (adjust as necessary for your specific environment):
# Fill in the options you want to pass to configure here
options=""
./configure $options 2>&1 | tee $dir/config.out
tar -cf - `find . -name config.log` | tar -x -C $dir -
tar -cf - `find . -name config.log` | tar -x -C $dir
# Build and install Open MPI
make V=1 all 2>&1 | tee $dir/make.out
Expand Down
2 changes: 1 addition & 1 deletion docs/man-openmpi/man3/MPI_Send.3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Fortran 2008 Syntax
INPUT PARAMETERS
----------------
* ``buf``: Initial address of send buffer (choice).
* ``count``: Number of elements send (nonnegative integer).
* ``count``: Number of elements in send buffer (nonnegative integer).
* ``datatype``: Datatype of each send buffer element (handle).
* ``dest``: Rank of destination (integer).
* ``tag``: Message tag (integer).
Expand Down
13 changes: 0 additions & 13 deletions ompi/communicator/comm.c
Original file line number Diff line number Diff line change
Expand Up @@ -707,11 +707,6 @@ int ompi_comm_split_with_info( ompi_communicator_t* comm, int color, int key,
/* Activate the communicator and init coll-component */
rc = ompi_comm_activate (&newcomp, comm, NULL, NULL, NULL, false, mode);

/* MPI-4 §7.4.4 requires us to remove all unknown keys from the info object */
if (NULL != newcomp->super.s_info) {
opal_info_remove_unreferenced(newcomp->super.s_info);
}

exit:
free ( results );
free ( sorted );
Expand Down Expand Up @@ -1028,9 +1023,6 @@ static int ompi_comm_split_type_core(ompi_communicator_t *comm,
goto exit;
}

/* MPI-4 §7.4.4 requires us to remove all unknown keys from the info object */
opal_info_remove_unreferenced(newcomp->super.s_info);

/* TODO: there probably is better way to handle this case without throwing away the
* intermediate communicator. */
rc = ompi_comm_split (newcomp, local_split_type, key, newcomm, false);
Expand Down Expand Up @@ -1363,9 +1355,6 @@ int ompi_comm_dup_with_info ( ompi_communicator_t * comm, opal_info_t *info, omp
return rc;
}

/* MPI-4 §7.4.4 requires us to remove all unknown keys from the info object */
opal_info_remove_unreferenced(newcomp->super.s_info);

*newcomm = newcomp;
return MPI_SUCCESS;
}
Expand Down Expand Up @@ -1522,8 +1511,6 @@ static int ompi_comm_idup_with_info_finish (ompi_comm_request_t *request)
{
ompi_comm_idup_with_info_context_t *context =
(ompi_comm_idup_with_info_context_t *) request->context;
/* MPI-4 §7.4.4 requires us to remove all unknown keys from the info object */
opal_info_remove_unreferenced(context->newcomp->super.s_info);

/* done */
return MPI_SUCCESS;
Expand Down
3 changes: 0 additions & 3 deletions ompi/file/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,6 @@ int ompi_file_open(struct ompi_communicator_t *comm, const char *filename,
return ret;
}

/* MPI-4 §14.2.8 requires us to remove all unknown keys from the info object */
opal_info_remove_unreferenced(file->super.s_info);

/* All done */

*fh = file;
Expand Down
2 changes: 1 addition & 1 deletion ompi/info/info.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ int ompi_mpiinfo_init_env(int argc, char *argv[], ompi_info_t *info)
// related calls:

int ompi_info_dup (ompi_info_t *info, ompi_info_t **newinfo) {
return opal_info_dup (&(info->super), (opal_info_t **)newinfo);
return opal_info_dup_public (&(info->super), (opal_info_t **)newinfo);
}
int ompi_info_set (ompi_info_t *info, const char *key, const char *value) {
return opal_info_set (&(info->super), key, value);
Expand Down
3 changes: 1 addition & 2 deletions ompi/mca/coll/accelerator/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
# Copyright (c) 2014 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2014 NVIDIA Corporation. All rights reserved.
# Copyright (c) 2014-2024 NVIDIA Corporation. All rights reserved.
# Copyright (c) 2017 IBM Corporation. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
dist_ompidata_DATA = help-mpi-coll-accelerator.txt

sources = coll_accelerator_module.c coll_accelerator_reduce.c coll_accelerator_allreduce.c \
coll_accelerator_reduce_scatter_block.c coll_accelerator_component.c \
Expand Down
5 changes: 1 addition & 4 deletions ompi/mca/coll/accelerator/coll_accelerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Copyright (c) 2014 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2014-2015 NVIDIA Corporation. All rights reserved.
* Copyright (c) 2014-2024 NVIDIA Corporation. All rights reserved.
* Copyright (c) 2024 Triad National Security, LLC. All rights reserved.
* $COPYRIGHT$
*
Expand Down Expand Up @@ -38,9 +38,6 @@ mca_coll_base_module_t
*mca_coll_accelerator_comm_query(struct ompi_communicator_t *comm,
int *priority);

int mca_coll_accelerator_module_enable(mca_coll_base_module_t *module,
struct ompi_communicator_t *comm);

int
mca_coll_accelerator_allreduce(const void *sbuf, void *rbuf, int count,
struct ompi_datatype_t *dtype,
Expand Down
Loading

0 comments on commit 17f8c74

Please sign in to comment.