Hello community, here is the log from the commit of package openmpi2 for openSUSE:Factory checked in at 2017-09-20 17:12:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openmpi2 (Old) and /work/SRC/openSUSE:Factory/.openmpi2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openmpi2" Wed Sep 20 17:12:42 2017 rev:6 rq:527336 version:2.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/openmpi2/openmpi2-testsuite.changes 2017-09-12 19:56:09.284666820 +0200 +++ /work/SRC/openSUSE:Factory/.openmpi2.new/openmpi2-testsuite.changes 2017-09-20 17:12:50.992213030 +0200 @@ -1,0 +2,18 @@ +Tue Sep 19 14:36:31 UTC 2017 - [email protected] + +- Remove --disable-mca-dso + Related bug was due to openmpi/*.so wrongly packaged as devel + +------------------------------------------------------------------- +Fri Sep 15 13:39:33 UTC 2017 - [email protected] + +- Reenable fortan08 bindings as gcc >= 5 is now the default +- Remove devel-headers configure option (reserved for MPI plugins developers) + +------------------------------------------------------------------- +Tue Sep 12 16:12:29 UTC 2017 - [email protected] + +- Update to 2.1.1.186.9a3ac9803c +- Drop openmpi-pmix-configure-ac.patch as it was merged upstream + +------------------------------------------------------------------- @@ -5 +23 @@ - * Too manu bug fixes to list. See NEWS + * Too many bug fixes to list. See NEWS openmpi2.changes: same change Old: ---- openmpi-2.1.1.176.7aa585d4ff.tar.bz2 openmpi-pmix-configure-ac.patch New: ---- openmpi-2.1.1.186.9a3ac9803c.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openmpi2-testsuite.spec ++++++ --- /var/tmp/diff_new_pack.I8MmaL/_old 2017-09-20 17:12:52.412013165 +0200 +++ /var/tmp/diff_new_pack.I8MmaL/_new 2017-09-20 17:12:52.416012603 +0200 @@ -52,7 +52,7 @@ %endif %endif -%define git_ver .176.7aa585d4ff +%define git_ver .186.9a3ac9803c ############################################################################# # @@ -70,7 +70,6 @@ Source0: openmpi-%{version}%{git_ver}.tar.bz2 Source1: baselibs.conf Source2: openmpi2-rpmlintrc -Patch0: openmpi-pmix-configure-ac.patch Provides: mpi BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: Modules @@ -243,7 +242,6 @@ ############################################################################# %prep %setup -q -n openmpi-%{version}%{git_ver} -%patch0 ############################################################################# # @@ -273,10 +271,7 @@ --with-ucx \ --with-ucx-libdir=/usr/%_lib \ %endif - --with-devel-headers \ --with-package-string="Open MPI2 Distribution for SUSE" \ - --enable-mpi-fortran=usempi \ - --disable-mca-dso \ --disable-silent-rules \ --disable-wrapper-rpath make %{?_smp_mflags} @@ -392,6 +387,8 @@ %endif # !openmpi2-testsuite %if "%{name}" == "openmpi2" +%fdupes -s %{buildroot}%{mpi_mandir} +%fdupes -s %{buildroot}%{mpi_datadir} ############################################################################# # @@ -553,16 +550,20 @@ %defattr(-, root, root, -) %dir %{mpi_libdir} %mpi_libdir/*.so.* +%{mpi_libdir}/openmpi/*.so %files devel %defattr(-, root, root, -) %dir %{mpi_libdir}/openmpi %dir %{mpi_libdir}/pkgconfig %{mpi_includedir} -%{mpi_libdir}/openmpi/*.so %{mpi_libdir}/*.so %{mpi_libdir}/pkgconfig/*.pc %{mpi_libdir}/mpi.mod +%if 0%{?suse_version} >= 1320 +%{mpi_libdir}/mpi_f08*.mod +%{mpi_libdir}/pmpi_f08*.mod +%endif %{mpi_bindir}/mpiCC %{mpi_bindir}/mpic++ %{mpi_bindir}/mpicc @@ -572,8 +573,6 @@ %{mpi_bindir}/mpif90 %{mpi_bindir}/mpifort %{mpi_bindir}/opal_wrapper -%{mpi_bindir}/opalc++ -%{mpi_bindir}/opalcc %{mpi_bindir}/ortecc %{mpi_bindir}/shmemcc @@ -584,8 +583,6 @@ %{mpi_datadir}/openmpi/mpif77-wrapper-data.txt %{mpi_datadir}/openmpi/mpif90-wrapper-data.txt %{mpi_datadir}/openmpi/mpifort-wrapper-data.txt -%{mpi_datadir}/openmpi/opalc++-wrapper-data.txt -%{mpi_datadir}/openmpi/opalcc-wrapper-data.txt %{mpi_datadir}/openmpi/openmpi-valgrind.supp %{mpi_datadir}/openmpi/ortecc-wrapper-data.txt %{mpi_datadir}/openmpi/oshcc-wrapper-data.txt ++++++ openmpi2.spec ++++++ --- /var/tmp/diff_new_pack.I8MmaL/_old 2017-09-20 17:12:52.452007535 +0200 +++ /var/tmp/diff_new_pack.I8MmaL/_new 2017-09-20 17:12:52.452007535 +0200 @@ -52,7 +52,7 @@ %endif %endif -%define git_ver .176.7aa585d4ff +%define git_ver .186.9a3ac9803c ############################################################################# # @@ -70,7 +70,6 @@ Source0: openmpi-%{version}%{git_ver}.tar.bz2 Source1: baselibs.conf Source2: openmpi2-rpmlintrc -Patch0: openmpi-pmix-configure-ac.patch Provides: mpi BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: Modules @@ -243,7 +242,6 @@ ############################################################################# %prep %setup -q -n openmpi-%{version}%{git_ver} -%patch0 ############################################################################# # @@ -273,10 +271,7 @@ --with-ucx \ --with-ucx-libdir=/usr/%_lib \ %endif - --with-devel-headers \ --with-package-string="Open MPI2 Distribution for SUSE" \ - --enable-mpi-fortran=usempi \ - --disable-mca-dso \ --disable-silent-rules \ --disable-wrapper-rpath make %{?_smp_mflags} @@ -392,6 +387,8 @@ %endif # !openmpi2-testsuite %if "%{name}" == "openmpi2" +%fdupes -s %{buildroot}%{mpi_mandir} +%fdupes -s %{buildroot}%{mpi_datadir} ############################################################################# # @@ -553,16 +550,20 @@ %defattr(-, root, root, -) %dir %{mpi_libdir} %mpi_libdir/*.so.* +%{mpi_libdir}/openmpi/*.so %files devel %defattr(-, root, root, -) %dir %{mpi_libdir}/openmpi %dir %{mpi_libdir}/pkgconfig %{mpi_includedir} -%{mpi_libdir}/openmpi/*.so %{mpi_libdir}/*.so %{mpi_libdir}/pkgconfig/*.pc %{mpi_libdir}/mpi.mod +%if 0%{?suse_version} >= 1320 +%{mpi_libdir}/mpi_f08*.mod +%{mpi_libdir}/pmpi_f08*.mod +%endif %{mpi_bindir}/mpiCC %{mpi_bindir}/mpic++ %{mpi_bindir}/mpicc @@ -572,8 +573,6 @@ %{mpi_bindir}/mpif90 %{mpi_bindir}/mpifort %{mpi_bindir}/opal_wrapper -%{mpi_bindir}/opalc++ -%{mpi_bindir}/opalcc %{mpi_bindir}/ortecc %{mpi_bindir}/shmemcc @@ -584,8 +583,6 @@ %{mpi_datadir}/openmpi/mpif77-wrapper-data.txt %{mpi_datadir}/openmpi/mpif90-wrapper-data.txt %{mpi_datadir}/openmpi/mpifort-wrapper-data.txt -%{mpi_datadir}/openmpi/opalc++-wrapper-data.txt -%{mpi_datadir}/openmpi/opalcc-wrapper-data.txt %{mpi_datadir}/openmpi/openmpi-valgrind.supp %{mpi_datadir}/openmpi/ortecc-wrapper-data.txt %{mpi_datadir}/openmpi/oshcc-wrapper-data.txt ++++++ _service ++++++ --- /var/tmp/diff_new_pack.I8MmaL/_old 2017-09-20 17:12:52.515998527 +0200 +++ /var/tmp/diff_new_pack.I8MmaL/_new 2017-09-20 17:12:52.515998527 +0200 @@ -8,7 +8,7 @@ <param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> - <param name="revision">7aa585d4ff260b69c7c90aceb7796c0aca7f1861</param> + <param name="revision">9a3ac9803cbd27d553457b3bb32450fedce1df15</param> </service> <service name="recompress" mode="disabled"> <param name="file">openmpi*.tar</param> ++++++ openmpi-2.1.1.176.7aa585d4ff.tar.bz2 -> openmpi-2.1.1.186.9a3ac9803c.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/NEWS new/openmpi-2.1.1.186.9a3ac9803c/NEWS --- old/openmpi-2.1.1.176.7aa585d4ff/NEWS 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/NEWS 2017-09-12 16:57:41.000000000 +0200 @@ -57,7 +57,6 @@ ------------------------ Bug fixes/minor improvements: - - Update internal PMIx version to 1.2.3. - Fix some problems when using the NAG Fortran compiler to build Open MPI and when using the compiler wrappers. Thanks to Neil Carlson for reporting. @@ -94,6 +93,11 @@ - Enable use of the head node of a SLURM allocation on Cray XC systems. - Fix a problem with synchronous sends when using the UCX PML. - Use default socket buffer size to improve TCP BTL performance. +- Add a mca parameter ras_base_launch_orted_on_hn to allow for launching + MPI processes on the same node where mpirun is executing using a separate + orte daemon, rather than the mpirun process. This may be useful to set to + true when using SLURM, as it improves interoperability with SLURM's signal + propagation tools. By default it is set to false, except for Cray XC systems. - Remove support for big endian PowerPC. - Remove support for XL compilers older than v13.1 - Remove IB XRC support from the OpenIB BTL due to loss of maintainer. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/README new/openmpi-2.1.1.186.9a3ac9803c/README --- old/openmpi-2.1.1.176.7aa585d4ff/README 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/README 2017-09-12 16:57:41.000000000 +0200 @@ -144,6 +144,9 @@ - Other 64 bit platforms (e.g., Linux on PPC64) - Oracle Solaris 10 and 11, 32 and 64 bit (SPARC, i386, x86_64), with Oracle Solaris Studio 12.5 + - Problems have been reported when building Open MPI on FreeBSD 11.1 + using the clang-4.0 system compiler. A workaround is to build + Open MPI using the GNU compiler. Compiler Notes -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/VERSION new/openmpi-2.1.1.186.9a3ac9803c/VERSION --- old/openmpi-2.1.1.176.7aa585d4ff/VERSION 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/VERSION 2017-09-12 16:57:41.000000000 +0200 @@ -26,7 +26,7 @@ # requirement is that it must be entirely printable ASCII characters # and have no white space. -greek=rc3 +greek=rc4 # If repo_rev is empty, then the repository version number will be # obtained during "make dist" via the "git describe --tags --always" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/opal/mca/pmix/pmix112/pmix/configure.ac new/openmpi-2.1.1.186.9a3ac9803c/opal/mca/pmix/pmix112/pmix/configure.ac --- old/openmpi-2.1.1.176.7aa585d4ff/opal/mca/pmix/pmix112/pmix/configure.ac 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/opal/mca/pmix/pmix112/pmix/configure.ac 2017-09-12 16:57:41.000000000 +0200 @@ -19,7 +19,7 @@ # Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. -# Copyright (c) 2014-2015 Intel, Inc. All rights reserved +# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. # $COPYRIGHT$ # @@ -170,7 +170,6 @@ #################################################################### CFLAGS_save="$CFLAGS" -AC_PROG_CC CFLAGS="$CFLAGS_save" AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/base.h new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/base.h --- old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/base.h 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/base.h 2017-09-12 16:57:41.000000000 +0200 @@ -49,6 +49,7 @@ bool allocation_read; orte_ras_base_module_t *active_module; int total_slots_alloc; + bool launch_orted_on_hn; } orte_ras_base_t; ORTE_DECLSPEC extern orte_ras_base_t orte_ras_base; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/ras_base_frame.c new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/ras_base_frame.c --- old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/ras_base_frame.c 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/ras_base_frame.c 2017-09-12 16:57:41.000000000 +0200 @@ -50,6 +50,36 @@ */ orte_ras_base_t orte_ras_base = {0}; +static int ras_register(mca_base_register_flag_t flags) +{ +#if SLURM_CRAY_ENV + /* + * If we are in a Cray-SLURM environment, then we cannot + * launch procs local to the HNP. The problem + * is the MPI processes launched on the head node (where the + * ORTE_PROC_IS_HNP evalues to true) get launched by a daemon + * (mpirun) which is not a child of a slurmd daemon. This + * means that any RDMA credentials obtained via the odls/alps + * local launcher are incorrect. Test for this condition. If + * found, then take steps to ensure we launch a daemon on + * the same node as mpirun and that it gets used to fork + * local procs instead of mpirun so they get the proper + * credential */ + + orte_ras_base.launch_orted_on_hn = true; +#else + orte_ras_base.launch_orted_on_hn = false; +#endif + + mca_base_var_register("orte", "ras", "base", "launch_orted_on_hn", + "Launch an orte daemon on the head node", + MCA_BASE_VAR_TYPE_BOOL, + NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &orte_ras_base.launch_orted_on_hn); + return ORTE_SUCCESS; +} + static int orte_ras_base_close(void) { /* Close selected component */ @@ -76,5 +106,5 @@ } MCA_BASE_FRAMEWORK_DECLARE(orte, ras, "ORTE Resource Allocation Subsystem", - NULL, orte_ras_base_open, orte_ras_base_close, + ras_register, orte_ras_base_open, orte_ras_base_close, mca_ras_base_static_components, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/ras_base_node.c new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/ras_base_node.c --- old/openmpi-2.1.1.176.7aa585d4ff/orte/mca/ras/base/ras_base_node.c 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/orte/mca/ras/base/ras_base_node.c 2017-09-12 16:57:41.000000000 +0200 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2011-2012 Los Alamos National Security, LLC. All rights + * Copyright (c) 2011-2017 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -97,33 +97,24 @@ /* get the hnp node's info */ hnp_node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, 0); -#if SLURM_CRAY_ENV - /* if we are in a Cray-SLURM environment, then we cannot - * launch procs local to the HNP. The problem - * is the MPI processes launched on the head node (where the - * ORTE_PROC_IS_HNP evalues to true) get launched by a daemon - * (mpirun) which is not a child of a slurmd daemon. This - * means that any RDMA credentials obtained via the odls/alps - * local launcher are incorrect. Test for this condition. If - * found, then take steps to ensure we launch a daemon on - * the same node as mpirun and that it gets used to fork - * local procs instead of mpirun so they get the proper - * credential */ - if (NULL != hnp_node) { - OPAL_LIST_FOREACH(node, nodes, orte_node_t) { - if (orte_ifislocal(node->name)) { - orte_hnp_is_allocated = true; - break; + + if ((orte_ras_base.launch_orted_on_hn == true) && + (orte_managed_allocation)) { + if (NULL != hnp_node) { + OPAL_LIST_FOREACH(node, nodes, orte_node_t) { + if (orte_ifislocal(node->name)) { + orte_hnp_is_allocated = true; + break; + } + } + if (orte_hnp_is_allocated && !(ORTE_GET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping) & + ORTE_MAPPING_NO_USE_LOCAL)) { + hnp_node->name = strdup("mpirun"); + skiphnp = true; + ORTE_SET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping, ORTE_MAPPING_NO_USE_LOCAL); } - } - if (orte_hnp_is_allocated && !(ORTE_GET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping) & ORTE_MAPPING_NO_USE_LOCAL)) { - hnp_node->name = strdup("mpirun"); - skiphnp = true; - ORTE_SET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping, ORTE_MAPPING_NO_USE_LOCAL); } } -#endif - /* cycle through the list */ while (NULL != (item = opal_list_remove_first(nodes))) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmpi-2.1.1.176.7aa585d4ff/test/util/opal_path_nfs.c new/openmpi-2.1.1.186.9a3ac9803c/test/util/opal_path_nfs.c --- old/openmpi-2.1.1.176.7aa585d4ff/test/util/opal_path_nfs.c 2017-08-30 21:16:52.000000000 +0200 +++ new/openmpi-2.1.1.186.9a3ac9803c/test/util/opal_path_nfs.c 2017-09-12 16:57:41.000000000 +0200 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2010 Oak Ridge National Laboratory. * All rights reserved. - * Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved * Copyright (c) 2010 IBM Corporation. All rights reserved. * Copyright (c) 2014 Los Alamos National Security, LLC. All rights * reserved. @@ -132,7 +132,6 @@ void get_mounts (int * num_dirs, char ** dirs[], bool * nfs[]) { -#define MAX_DIR 256 #define SIZE 1024 char * cmd = "mount | cut -f3,5 -d' ' > opal_path_nfs.out"; int rc; @@ -150,13 +149,31 @@ **dirs = NULL; *nfs = NULL; } - dirs_tmp = (char**) calloc (MAX_DIR, sizeof(char**)); - nfs_tmp = (bool*) malloc (MAX_DIR * sizeof(bool)); + /* First, count how many mount points there are. Previous + versions of this test tried to have a (large) constant-sized + array for the mount points, but periodically it would break + because we would run this test on a system with a larger number + of mount points than the array. So just count and make sure to + have an array large enough. */ file = fopen("opal_path_nfs.out", "r"); + int count = 0; + while (NULL != fgets (buffer, SIZE, file)) { + ++count; + } + printf("Found %d mounts\n", count); + + // Add one more so we can have a NULL entry at the end + ++count; + + dirs_tmp = (char**) calloc (count, sizeof(char*)); + nfs_tmp = (bool*) calloc (count, sizeof(bool)); + i = 0; rc = 4711; - while (NULL != fgets (buffer, SIZE, file)) { + rewind(file); + // i should never be more than count, but be safe anyway. + while (i < count && NULL != fgets (buffer, SIZE, file)) { int mount_known; char fs[MAXNAMLEN];
