Compare commits
1 Commits
Author | SHA256 | Date | |
---|---|---|---|
818c9e662b |
@@ -1,30 +0,0 @@
|
||||
commit fc4fb3a80615992277717e3e29ce585ebe1f2256
|
||||
Author: Tomislav Janjusic <tomislavj@nvidia.com>
|
||||
Date: Tue Feb 18 12:25:27 2025 -0600
|
||||
|
||||
Fix type mismatch error
|
||||
|
||||
Signed-off-by: Tomislav Janjusic <tomislavj@nvidia.com>
|
||||
|
||||
diff --git oshmem/mca/sshmem/base/sshmem_base_open.c oshmem/mca/sshmem/base/sshmem_base_open.c
|
||||
index 1f0d1eb761e2..2694120e1cfe 100644
|
||||
--- oshmem/mca/sshmem/base/sshmem_base_open.c
|
||||
+++ oshmem/mca/sshmem/base/sshmem_base_open.c
|
||||
@@ -31,7 +31,7 @@
|
||||
* globals
|
||||
*/
|
||||
|
||||
-void *mca_sshmem_base_start_address = UINTPTR_MAX;
|
||||
+void *mca_sshmem_base_start_address = (void *)UINTPTR_MAX;
|
||||
|
||||
char * mca_sshmem_base_backing_file_dir = NULL;
|
||||
|
||||
@@ -49,7 +49,7 @@ mca_sshmem_base_register (mca_base_register_flag_t flags)
|
||||
"base",
|
||||
"start_address",
|
||||
"Specify base address for shared memory region",
|
||||
- MCA_BASE_VAR_TYPE_UNSIGNED_LONG_LONG,
|
||||
+ MCA_BASE_VAR_TYPE_UNSIGNED_LONG,
|
||||
NULL,
|
||||
0,
|
||||
MCA_BASE_VAR_FLAG_SETTABLE,
|
@@ -1,4 +1,6 @@
|
||||
<multibuild>
|
||||
<package>standard</package>
|
||||
<package>testsuite</package>
|
||||
<package>gnu-hpc</package>
|
||||
<package>gnu-hpc-testsuite</package>
|
||||
</multibuild>
|
||||
|
6
_service
6
_service
@@ -1,5 +1,5 @@
|
||||
<services>
|
||||
<service name="tar_scm" mode="manual">
|
||||
<service name="tar_scm" mode="disabled">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/open-mpi/ompi.git</param>
|
||||
<param name="package-meta">no</param>
|
||||
@@ -8,9 +8,9 @@
|
||||
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<param name="revision">ea8f4d03089018f08451f42f2cfa2467570f395e</param>
|
||||
<param name="revision">439b23db6288f0370f6fcc80c8c0a06ad86d6873</param>
|
||||
</service>
|
||||
<service name="recompress" mode="manual">
|
||||
<service name="recompress" mode="disabled">
|
||||
<param name="file">openmpi*.tar</param>
|
||||
<param name="compression">bz2</param>
|
||||
</service>
|
||||
|
21
macros.hpc-openmpi
Normal file
21
macros.hpc-openmpi
Normal file
@@ -0,0 +1,21 @@
|
||||
#
|
||||
# openmpi
|
||||
#
|
||||
|
||||
%hpc_openmpi_init(V:) \
|
||||
%{-V: %define _mf_ver %{-V*}} \
|
||||
%{expand: %%global hpc_openmpi_dep_version %%{?_mf_ver}%%{?!_mf_ver:3}} \
|
||||
%{expand: %%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}} \
|
||||
%{expand: %%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}} \
|
||||
%{expand: %%global _hpc_openmpi_modules openmpi}
|
||||
|
||||
# We may have to add a version here.
|
||||
%hpc_setup_openmpi \
|
||||
module load openmpi
|
||||
|
||||
%hpc_openmpi_requires \
|
||||
Requires: libopenmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
|
||||
|
||||
%hpc_openmpi_requires_devel \
|
||||
Requires: openmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc-devel
|
||||
|
@@ -1,24 +0,0 @@
|
||||
commit 75b6dad5959ba75fcba8c64cc0a364d820e03ebc
|
||||
Author: Nicolas Morey <nmorey@suse.com>
|
||||
Date: Fri Dec 20 12:44:38 2024 +0100
|
||||
|
||||
mtl: ofi: fix missing definition of container_of
|
||||
|
||||
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
||||
|
||||
diff --git ompi/mca/mtl/ofi/mtl_ofi_request.h ompi/mca/mtl/ofi/mtl_ofi_request.h
|
||||
index f68c2a91baa0..6d748fd59bdc 100644
|
||||
--- ompi/mca/mtl/ofi/mtl_ofi_request.h
|
||||
+++ ompi/mca/mtl/ofi/mtl_ofi_request.h
|
||||
@@ -15,6 +15,11 @@
|
||||
|
||||
#include "mtl_ofi.h"
|
||||
|
||||
+#ifndef container_of
|
||||
+#define container_of(ptr, type, field) \
|
||||
+ ((type *) ((char *)ptr - offsetof(type, field)))
|
||||
+#endif
|
||||
+
|
||||
#define TO_OFI_REQ(_ptr_ctx) \
|
||||
container_of((_ptr_ctx), struct ompi_mtl_ofi_request_t, ctx)
|
||||
|
BIN
openmpi-4.1.6.0.439b23db6288.tar.bz2
(Stored with Git LFS)
Normal file
BIN
openmpi-4.1.6.0.439b23db6288.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
openmpi-4.1.8.0.ea8f4d030890.tar.bz2
(Stored with Git LFS)
BIN
openmpi-4.1.8.0.ea8f4d030890.tar.bz2
(Stored with Git LFS)
Binary file not shown.
@@ -1,96 +0,0 @@
|
||||
--- ./opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c~ 2023-09-25 20:20:09.000000000 +0000
|
||||
+++ ./opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c 2024-07-29 16:12:38.161908410 +0000
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
#if HWLOC_API_VERSION >= 0x20000
|
||||
static size_t shmemsize = 0;
|
||||
-static size_t shmemaddr;
|
||||
+static uintptr_t shmemaddr;
|
||||
static char *shmemfile = NULL;
|
||||
static int shmemfd = -1;
|
||||
|
||||
@@ -58,10 +58,10 @@
|
||||
pmix_hwloc_vm_map_kind_t *kindp);
|
||||
static int use_hole(unsigned long holebegin,
|
||||
unsigned long holesize,
|
||||
- unsigned long *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
unsigned long size);
|
||||
static int find_hole(pmix_hwloc_vm_hole_kind_t hkind,
|
||||
- size_t *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
size_t size);
|
||||
static int enough_space(const char *filename,
|
||||
size_t space_req,
|
||||
@@ -584,7 +584,7 @@
|
||||
|
||||
static int use_hole(unsigned long holebegin,
|
||||
unsigned long holesize,
|
||||
- unsigned long *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
unsigned long size)
|
||||
{
|
||||
unsigned long aligned;
|
||||
@@ -615,7 +615,7 @@
|
||||
}
|
||||
|
||||
static int find_hole(pmix_hwloc_vm_hole_kind_t hkind,
|
||||
- size_t *addrp, size_t size)
|
||||
+ uintptr_t *addrp, size_t size)
|
||||
{
|
||||
unsigned long biggestbegin = 0;
|
||||
unsigned long biggestsize = 0;
|
||||
--- ./orte/mca/rtc/hwloc/rtc_hwloc.c~ 2023-09-25 20:20:09.000000000 +0000
|
||||
+++ ./orte/mca/rtc/hwloc/rtc_hwloc.c 2024-07-26 16:29:16.763923042 +0000
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
#if HWLOC_API_VERSION >= 0x20000
|
||||
static size_t shmemsize = 0;
|
||||
-static size_t shmemaddr;
|
||||
+static uintptr_t shmemaddr;
|
||||
static char *shmemfile = NULL;
|
||||
static int shmemfd = -1;
|
||||
|
||||
@@ -77,10 +77,10 @@
|
||||
orte_rtc_hwloc_vm_map_kind_t *kindp);
|
||||
static int use_hole(unsigned long holebegin,
|
||||
unsigned long holesize,
|
||||
- unsigned long *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
unsigned long size);
|
||||
static int find_hole(orte_rtc_hwloc_vm_hole_kind_t hkind,
|
||||
- size_t *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
size_t size);
|
||||
static int enough_space(const char *filename,
|
||||
size_t space_req,
|
||||
@@ -524,7 +524,7 @@
|
||||
|
||||
static int use_hole(unsigned long holebegin,
|
||||
unsigned long holesize,
|
||||
- unsigned long *addrp,
|
||||
+ uintptr_t *addrp,
|
||||
unsigned long size)
|
||||
{
|
||||
unsigned long aligned;
|
||||
@@ -576,7 +576,7 @@
|
||||
}
|
||||
|
||||
static int find_hole(orte_rtc_hwloc_vm_hole_kind_t hkind,
|
||||
- size_t *addrp, size_t size)
|
||||
+ uintptr_t *addrp, size_t size)
|
||||
{
|
||||
unsigned long biggestbegin = 0;
|
||||
unsigned long biggestsize = 0;
|
||||
--- ./ompi/mca/io/romio321/romio/adio/include/adio.h~ 2023-09-25 20:20:09.000000000 +0000
|
||||
+++ ./ompi/mca/io/romio321/romio/adio/include/adio.h 2024-07-29 15:40:10.597565427 +0000
|
||||
@@ -97,6 +97,9 @@
|
||||
#ifdef MPI_OFFSET_IS_INT
|
||||
typedef int ADIO_Offset;
|
||||
# define ADIO_OFFSET MPI_INT
|
||||
+#elif __SIZEOF_SIZE_T__ == 4
|
||||
+ typedef long ADIO_Offset;
|
||||
+# define ADIO_OFFSET MPI_LONG
|
||||
#elif defined(HAVE_LONG_LONG_64)
|
||||
typedef long long ADIO_Offset;
|
||||
# ifdef HAVE_MPI_LONG_LONG_INT
|
@@ -1,90 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 29 14:42:02 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Remove support for gnu-hpc build flavours.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 24 12:52:28 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Disable gnu-hpc build flavours (bsc#1239982)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 19 16:04:48 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Update to 4.1.8 (jsc#PED-11356):
|
||||
- Allocate and exchange OpenSHMEM base segment addresses earlier in
|
||||
startup.
|
||||
- Fixed file_seek calculation when using SEEK_END and io/ompio.
|
||||
- Protect against using CUDA without VMM support.
|
||||
- Change several variables in coll/adapt, coll/basic, coll/han,
|
||||
coll/hcoll, and coll/ucc from READONLY to ALL scope so that they can
|
||||
be set via the MPI_T interface.
|
||||
- Add version identifier to rules file in coll/tuned and extend the
|
||||
dynamic rules file to support the alltoall_algorithm_max_requests
|
||||
tuning parameter.
|
||||
- Change default openmpi to openmpi5 for suse_version >= 1600
|
||||
- Add Fix-type-mismatch-error.patch to fix a compilation error
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 11:46:32 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
|
||||
compilation with libfabric >= 2.0 (jsc#PED-9661, jsc#PED-10668)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 26 07:12:00 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Update to 4.1.7 (jsc#PED-11355):
|
||||
- Fix int overflow bug in UCC collectives routine, which would impact
|
||||
large message collectives.
|
||||
- Fix SHMEM bounds checking warnings
|
||||
- Fix memory leak in the fcoll/vulcan component
|
||||
- Fix memory leak when using non-contiguious datatyles with pml/cm
|
||||
(used when using Libfabric or Portals transports)
|
||||
- Change default locking protocol for ufs IO component to fix data
|
||||
sieving use case.
|
||||
- Fix bug in Fortran / C interface array calculation.
|
||||
- Fix potential initialization in UCX OpenSHMEM support
|
||||
- Add OpenSHMEM support for symmetric remote key handling to improve
|
||||
scalability of OpenSHMEM interface.
|
||||
- Add MCS Locks as default implementation for OpenSHMEM locks.
|
||||
- Fix bug to properly handle ORTE Prefix of "/".
|
||||
- Fix bug in I/O interface handling of soft links on Lustre
|
||||
filesystems.
|
||||
- Fix memory leak in UCX one-sided implementation.
|
||||
- Fix bug in rcache components that could lead to assert on macOS
|
||||
systems.
|
||||
- Fix mishandling of a NULL completion context in the OFI transport.
|
||||
- Tarballs are now built with the tar-pax format.
|
||||
- Set MPI_THREAD_SERIALIZED instead of MPI_THREAD_SINGLE as supported
|
||||
threading model when using UCX that supports
|
||||
UCS_THREAD_MODE_SERIALIZED.
|
||||
- Fix issue that would prevent using Libfabric 2.x releases.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 5 06:58:41 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Add test-datatype-partial.c-fix-compiler-warnings.patch to fix
|
||||
testuite compilation with GCC >= 14
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 29 16:40:16 UTC 2024 - Martin Jambor <mjambor@suse.com>
|
||||
|
||||
- Add openmpi4-C99.diff to fix the most egregious type violations that
|
||||
not only prevent building the standard flavor with GCC 14 opn i586
|
||||
but that are just bugs too.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 25 13:24:03 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Disable 32b builds of hpc flavours
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 26 12:47:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Use %autosetup macro. Allows to eliminate the usage of deprecated
|
||||
PatchN.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 10 09:44:40 UTC 2023 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
|
267
openmpi4.spec
267
openmpi4.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package openmpi4
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
@@ -37,41 +37,93 @@
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
# Static libraries are disabled by default
|
||||
# for non HPC builds
|
||||
# To enable them, simply uncomment:
|
||||
# % define build_static_devel 1
|
||||
|
||||
%global pname openmpi
|
||||
%define _vers 4_1_6
|
||||
%define m_f_ver 4
|
||||
%bcond_with ringdisabled
|
||||
|
||||
%if "%flavor" == ""
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
# Trickery for OBS Staging. If _with_ringdisabled is set
|
||||
# we only want to build the flavors required by other rings packages.
|
||||
# Do not build any other ones
|
||||
%if %{with ringdisabled} && "%flavor" != "standard"
|
||||
%{bcond_with hpc}
|
||||
%define package_name %pname%{m_f_ver}
|
||||
%else
|
||||
# Trickery for OBS Staging. If _with_ringdisabled is set
|
||||
# we only want to build the flavors required by other rings packages.
|
||||
# Do not build any other ones
|
||||
%if %{with ringdisabled}
|
||||
%if "%flavor" != "standard"
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "standard" || "%flavor" == "testsuite"
|
||||
%define package_name %{pname}%{m_f_ver}
|
||||
%bcond_with hpc
|
||||
%if "%flavor" == "testsuite"
|
||||
%define testsuite 1
|
||||
%endif
|
||||
%else
|
||||
%bcond_without hpc
|
||||
# Needs to be defined here to avoid hen/egg problem with test packages.
|
||||
%define package_name %{pname}_%{_vers}-%{compiler_family}%{?c_f_ver}-hpc
|
||||
%define build_static_devel 1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "testsuite"
|
||||
%if "%flavor" == "gnu-hpc"
|
||||
%define compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu7-hpc"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu-hpc-testsuite"
|
||||
%define compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%define testsuite 1
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu7-hpc-testsuite"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
%define testsuite 1
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} >= 1320
|
||||
%ifarch aarch64 %power64 x86_64 s390x
|
||||
%define with_ucx 1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Detect whether we are the default openMPI implemantation or not
|
||||
%if "%{flavor}" == "standard" && (%{suse_version} > 1500 || 0%{?sle_version} > 150300) && (%{suse_version} < 1600)
|
||||
%if "%{flavor}" == "standard" && (%{suse_version} > 1500 || 0%{?sle_version} > 150300)
|
||||
%define default_openmpi 1
|
||||
%else
|
||||
%define default_openmpi 0
|
||||
%endif
|
||||
|
||||
%if %{with hpc}
|
||||
%{!?compiler_family:%global compiler_family gnu}
|
||||
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m openmpi %{?mpi_f_ver:-V %{mpi_f_ver}}}
|
||||
|
||||
%global hpc_openmpi_dep_version %(VER=%m_f_ver; echo -n ${VER})
|
||||
%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}
|
||||
%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}
|
||||
%{bcond_without pmix}
|
||||
%{bcond_without hwloc}
|
||||
%else
|
||||
%{bcond_with pmix}
|
||||
%{bcond_with hwloc}
|
||||
%endif
|
||||
|
||||
%define git_ver .0.ea8f4d030890
|
||||
%define git_ver .0.439b23db6288
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
@@ -79,23 +131,20 @@ ExclusiveArch: do_not_build
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
Name: openmpi4%{?testsuite:-testsuite}
|
||||
Version: 4.1.8
|
||||
Name: %{package_name}%{?testsuite:-testsuite}
|
||||
Version: 4.1.6
|
||||
Release: 0
|
||||
Summary: An implementation of MPI/SHMEM (Version 4)
|
||||
Summary: An implementation of MPI/SHMEM (Version %{m_f_ver})
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/Parallel
|
||||
URL: https://www.open-mpi.org/
|
||||
Source0: openmpi-%{version}%{git_ver}.tar.bz2
|
||||
Source2: openmpi4-rpmlintrc
|
||||
Source3: macros.hpc-openmpi
|
||||
Source4: mpivars.sh
|
||||
Source5: mpivars.csh
|
||||
Patch1: orted-mpir-add-version-to-shared-library.patch
|
||||
Patch2: btl-openib-Add-VF-support-for-ConnectX-4-5-and-6.patch
|
||||
Patch3: openmpi4-C99.diff
|
||||
Patch4: test-datatype-partial.c-fix-compiler-warnings.patch
|
||||
Patch5: mtl-ofi-fix-missing-definition-of-container_of.patch
|
||||
Patch6: Fix-type-mismatch-error.patch
|
||||
Provides: mpi
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: autoconf
|
||||
@@ -112,7 +161,7 @@ BuildRequires: libtool
|
||||
BuildRequires: net-tools
|
||||
%if 0%{?testsuite}
|
||||
BuildArch: noarch
|
||||
BuildRequires: openmpi4 = %{version}
|
||||
BuildRequires: %{package_name} = %{version}
|
||||
%endif
|
||||
%if 0%{?with_ucx}
|
||||
BuildRequires: libucm-devel
|
||||
@@ -126,13 +175,23 @@ BuildRequires: hwloc-devel
|
||||
%if %{with pmix}
|
||||
BuildRequires: pmix-devel
|
||||
%endif
|
||||
%if %{without hpc}
|
||||
BuildRequires: Modules
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-fortran
|
||||
BuildRequires: mpi-selector
|
||||
Requires: mpi-selector
|
||||
Requires(preun): mpi-selector
|
||||
Requires: %{name}-libs = %{version}
|
||||
Requires(preun):mpi-selector
|
||||
Requires: %{package_name}-libs = %{version}
|
||||
%else
|
||||
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
|
||||
BuildRequires: lua-lmod
|
||||
BuildRequires: suse-hpc
|
||||
%if 0%{!?testsuite:1}
|
||||
Requires: lib%{package_name} = %{version}
|
||||
%endif
|
||||
%hpc_requires
|
||||
%endif
|
||||
|
||||
%ifarch x86_64
|
||||
BuildRequires: libnuma-devel
|
||||
@@ -141,7 +200,7 @@ BuildRequires: numactl
|
||||
%endif
|
||||
|
||||
Requires: openmpi-runtime-config
|
||||
Recommends: %{name}-config
|
||||
Recommends: openmpi%{m_f_ver}-config
|
||||
%if 0%{?default_openmpi}
|
||||
Provides: openmpi = %{version}
|
||||
%endif
|
||||
@@ -149,14 +208,26 @@ Provides: openmpi = %{version}
|
||||
# Force ssh to make sure the install works out of the box
|
||||
Requires: openssh
|
||||
|
||||
%define mpi_prefix %{_libdir}/mpi/gcc/%{name}
|
||||
%if %{without hpc}
|
||||
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi%{m_f_ver}
|
||||
|
||||
%define mpi_bindir %{mpi_prefix}/bin
|
||||
%define mpi_libdir %{mpi_prefix}/%{_lib}
|
||||
%define mpi_datadir %{mpi_prefix}/share
|
||||
%define mpi_helpdir %{mpi_datadir}/%{name}
|
||||
%define mpi_helpdir %{mpi_datadir}/%{pname}%{m_f_ver}
|
||||
%define mpi_includedir %{mpi_prefix}/include
|
||||
%define mpi_mandir %{mpi_prefix}/share/man
|
||||
%else
|
||||
%define mpi_prefix %hpc_prefix
|
||||
|
||||
%define mpi_bindir %hpc_bindir
|
||||
%define mpi_libdir %hpc_libdir
|
||||
%define mpi_datadir %hpc_datadir
|
||||
%define mpi_helpdir %{mpi_datadir}/openmpi
|
||||
%define mpi_includedir %hpc_includedir
|
||||
%define mpi_mandir %hpc_mandir
|
||||
|
||||
%endif
|
||||
|
||||
%description
|
||||
%if 0%{?testsuite}
|
||||
@@ -176,19 +247,20 @@ one-sided communication techniques.
|
||||
|
||||
This package provides general tools (mpirun, mpiexec, etc.) and the
|
||||
Module Component Architecture (MCA) base and plugins necessary for
|
||||
running Open MPI/OpenSHMEM version %{version} jobs.
|
||||
running Open MPI/OpenSHMEM version %{m_f_ver} jobs.
|
||||
%endif
|
||||
|
||||
%if 0%{!?testsuite:1}
|
||||
%package libs
|
||||
Summary: OpenMPI runtime libraries for OpenMPI version %{version}
|
||||
%package %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
|
||||
Summary: OpenMPI runtime libraries for OpenMPI %{?with_hpc:HPC} version %{version}
|
||||
Group: System/Libraries
|
||||
Requires: %{name} = %{version}
|
||||
%if 0%{?default_openmpi}
|
||||
Provides: openmpi-libs = %{version}
|
||||
%endif
|
||||
%{?with_hpc:%hpc_requires}
|
||||
|
||||
%description libs
|
||||
%description %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
|
||||
OpenMPI is an implementation of the Message Passing Interface, a
|
||||
standardized API typically used for parallel and/or distributed
|
||||
computing. OpenMPI is the merged result of four prior implementations
|
||||
@@ -200,18 +272,22 @@ programming API, which is a Partitioned Global Address Space (PGAS)
|
||||
abstraction layer providing inter-process communication using
|
||||
one-sided communication techniques.
|
||||
|
||||
This package provides the Open MPI/OpenSHMEM version %{version}
|
||||
This package provides the Open MPI/OpenSHMEM version %{m_f_ver}
|
||||
shared libraries.
|
||||
|
||||
%package devel
|
||||
Summary: SDK for openMPI version %{version}
|
||||
Summary: SDK for openMPI %{?with_hpc:HPC} version %{version}
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: libibumad-devel
|
||||
Requires: libibverbs-devel
|
||||
%if %{without hpc}
|
||||
Requires: libstdc++-devel
|
||||
%if 0%{?default_openmpi}
|
||||
Provides: openmpi-devel = %{version}
|
||||
%endif
|
||||
%else
|
||||
%hpc_requires_devel
|
||||
%endif
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description devel
|
||||
@@ -227,11 +303,11 @@ abstraction layer providing inter-process communication using
|
||||
one-sided communication techniques.
|
||||
|
||||
This package provides the development files for Open MPI/OpenSHMEM
|
||||
version %{version}, such as wrapper compilers and header files for
|
||||
version %{m_f_ver}, such as wrapper compilers and header files for
|
||||
MPI/OpenSHMEM development.
|
||||
|
||||
%package docs
|
||||
Summary: Documentation for Open MPI/SHMEM version %{version}
|
||||
Summary: Documentation for Open MPI/SHMEM %{?with_hpc:HPC} version %{version}
|
||||
Group: Documentation/Man
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
@@ -254,11 +330,11 @@ Summary: Macros for openMPI version %{version}
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name}-devel = %{version}
|
||||
# Make sure no two openmpi macro file can be installed at once
|
||||
Provides: openmpi-macros-provider = %{version}
|
||||
Conflicts: otherproviders(openmpi-macros-provider)
|
||||
Provides: %{pname}-macros-provider = %{version}
|
||||
Conflicts: otherproviders(%{pname}-macros-provider)
|
||||
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag
|
||||
# to avoid issue with older packages
|
||||
Conflicts: otherproviders(openmpi-hpc-macros-devel)
|
||||
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
|
||||
|
||||
%if 0%{?default_openmpi}
|
||||
Provides: openmpi-macros-devel = %{version}
|
||||
@@ -269,7 +345,7 @@ Macros for building RPM packages for OpenMPI version %{version}.
|
||||
|
||||
%if 0%{?build_static_devel}
|
||||
%package devel-static
|
||||
Summary: Static libraries for openMPI version %{version}
|
||||
Summary: Static libraries for openMPI %{?with_hpc:HPC} version %{version}
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name}-devel = %{version}
|
||||
%if 0%{?default_openmpi}
|
||||
@@ -287,8 +363,9 @@ This RPM contains the static library files, which are packaged separately from
|
||||
the dynamic library and headers.
|
||||
%endif
|
||||
|
||||
%package config
|
||||
Summary: Runtime configuration files for openMPI version %{version}
|
||||
%if %{without hpc}
|
||||
%package -n %{pname}%{m_f_ver}-config
|
||||
Summary: Runtime configuration files for openMPI %{?with_hpc:HPC} version %{version}
|
||||
Group: Development/Libraries/Parallel
|
||||
Provides: openmpi-runtime-config = %{version}
|
||||
Conflicts: otherproviders(openmpi-runtime-config)
|
||||
@@ -298,7 +375,7 @@ Provides: pmix-runtime-config = %{version}
|
||||
Conflicts: otherproviders(pmix-runtime-config)
|
||||
%endif
|
||||
|
||||
%description config
|
||||
%description -n %{pname}%{m_f_ver}-config
|
||||
OpenMPI is an implementation of the Message Passing Interface, a
|
||||
standardized API typically used for parallel and/or distributed
|
||||
computing. OpenMPI is the merged result of four prior implementations
|
||||
@@ -306,9 +383,22 @@ where the team found for them to excel in one or more areas,
|
||||
such as latency or throughput.
|
||||
|
||||
This RPM contains the configuration files for OpenMPI runtime (Version 3).
|
||||
%endif
|
||||
|
||||
%if %{with hpc}
|
||||
%{hpc_master_package -L -a}
|
||||
%{hpc_master_package -l}
|
||||
%{hpc_master_package devel}
|
||||
%{hpc_master_package docs}
|
||||
%{hpc_master_package macros-devel}
|
||||
%{hpc_master_package -a devel-static}
|
||||
%endif # ?with_hpc
|
||||
%endif # !testsuite
|
||||
|
||||
%if "%(echo %version | tr '.' '_')" != "%_vers"
|
||||
%{error: Fix _vers variable to match package version!}
|
||||
%endif
|
||||
|
||||
#############################################################################
|
||||
#
|
||||
# Prepatory Section
|
||||
@@ -316,11 +406,21 @@ This RPM contains the configuration files for OpenMPI runtime (Version 3).
|
||||
#############################################################################
|
||||
%prep
|
||||
echo FLAVOR %{flavor}
|
||||
%autosetup -p0 -n openmpi-%{version}%{git_ver}
|
||||
%if %{with hpc}
|
||||
echo with HPC
|
||||
%endif
|
||||
%if %{without hpc}
|
||||
echo without HPC
|
||||
%endif
|
||||
%setup -q -n openmpi-%{version}%{git_ver}
|
||||
%patch1
|
||||
%patch2
|
||||
|
||||
%if %{without hpc}
|
||||
cat > %{_sourcedir}/baselibs.conf <<EOF
|
||||
openmpi%{m_f_ver}-libs
|
||||
EOF
|
||||
%endif
|
||||
|
||||
# Live patch the VERSION file
|
||||
sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{version}%{git_ver}/' \
|
||||
@@ -338,7 +438,12 @@ export USER=OBS
|
||||
export HOSTNAME=OBS
|
||||
# OBS sets SOURCE_DATE_EPOCH
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
%{?with_hpc:%hpc_debug}
|
||||
./autogen.pl --force
|
||||
%if %{with hpc}
|
||||
%{hpc_setup}
|
||||
%{hpc_configure} \
|
||||
%else
|
||||
%{configure} \
|
||||
--prefix="%{mpi_prefix}" \
|
||||
--exec-prefix="%{mpi_prefix}" \
|
||||
@@ -347,6 +452,7 @@ export HOSTNAME=OBS
|
||||
--includedir="%{mpi_includedir}" \
|
||||
--libdir="%{mpi_libdir}" \
|
||||
--mandir="%{mpi_mandir}" \
|
||||
%endif
|
||||
%{?build_static_devel:--enable-static} \
|
||||
%{!?build_static_devel:--disable-static} \
|
||||
--enable-builtin-atomics \
|
||||
@@ -396,6 +502,7 @@ make check
|
||||
#############################################################################
|
||||
|
||||
%install
|
||||
%{?with_hpc:%{hpc_setup_compiler}}
|
||||
make install DESTDIR="%buildroot"
|
||||
|
||||
# sanitize .la files
|
||||
@@ -428,6 +535,7 @@ rm -f %{buildroot}%{mpi_libdir}/mpi_ext.mod
|
||||
%fdupes %{buildroot}%{mpi_datadir}
|
||||
%fdupes %{buildroot}%{mpi_libdir}/pkgconfig
|
||||
|
||||
%if %{without hpc}
|
||||
# make and install mpivars files
|
||||
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \
|
||||
> %{buildroot}%{mpi_bindir}/mpivars.sh
|
||||
@@ -464,7 +572,56 @@ cat <<EOF >%{buildroot}%{_rpmmacrodir}/macros.openmpi
|
||||
%openmpi_devel_requires Requires: %{name}-devel
|
||||
|
||||
EOF
|
||||
%else
|
||||
%hpc_write_modules_files
|
||||
#%%Module1.0#####################################################################
|
||||
|
||||
proc ModulesHelp { } {
|
||||
|
||||
puts stderr " "
|
||||
puts stderr "This module loads the %{pname} library built with the %{compiler_family} toolchain."
|
||||
puts stderr "\nVersion %{version}\n"
|
||||
|
||||
}
|
||||
module-whatis "Name: %{pname} built with %{compiler_family} toolchain"
|
||||
module-whatis "Version: %{version}"
|
||||
module-whatis "Category: runtime library"
|
||||
module-whatis "Description: %{SUMMARY:0}"
|
||||
module-whatis "URL: %{url}"
|
||||
|
||||
set version %{version}
|
||||
|
||||
setenv MPI_DIR %{hpc_mpi_install_path}
|
||||
prepend-path PATH %{hpc_bindir}
|
||||
prepend-path MANPATH %{hpc_mandir}
|
||||
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
|
||||
prepend-path MODULEPATH %{hpc_modulepath}
|
||||
%{hpc_modulefile_add_pkgconfig_path}
|
||||
|
||||
family "MPI"
|
||||
EOF
|
||||
cat <<EOF > %{buildroot}/%{mpi_bindir}/mpivars.sh
|
||||
%hpc_setup_compiler
|
||||
module load %{hpc_mpi_family}%{?pack_suff}/%{version}
|
||||
EOF
|
||||
sed -e "s/export/setenv/" -e "s/=/ /" \
|
||||
%{buildroot}/%{mpi_bindir}/mpivars.sh > \
|
||||
%{buildroot}/%{mpi_bindir}/mpivars.csh
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
cp %{S:3} %{buildroot}%{_rpmmacrodir}
|
||||
|
||||
# Drop the files that should go into %{pname}-config as we only package them
|
||||
# in the non HPC build
|
||||
rm -f %{buildroot}%{_sysconfdir}/openmpi-default-hostfile
|
||||
rm -f %{buildroot}%{_sysconfdir}/openmpi-mca-params.conf
|
||||
rm -f %{buildroot}%{_sysconfdir}/openmpi-totalview.tcl
|
||||
%if %{without pmix}
|
||||
rm -f %{buildroot}%{_sysconfdir}/pmix-mca-params.conf
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{without hpc}
|
||||
%post
|
||||
# Always register. We might be already registered in the case of an udate
|
||||
# but mpi-selector handles it fine
|
||||
@@ -485,6 +642,14 @@ fi
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
%postun libs -p /sbin/ldconfig
|
||||
%else #!?with_hpc
|
||||
# make it default
|
||||
%post -n lib%{name} -p /sbin/ldconfig
|
||||
%postun -n lib%{name} -p /sbin/ldconfig
|
||||
|
||||
%postun
|
||||
%hpc_module_delete_if_default
|
||||
%endif #!?with_hpc
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
@@ -497,10 +662,17 @@ fi
|
||||
%dir %{mpi_mandir}
|
||||
%{mpi_bindir}/mpivars.csh
|
||||
%{mpi_bindir}/mpivars.sh
|
||||
|
||||
%if %{without hpc}
|
||||
%dir %{_libdir}/mpi
|
||||
%dir %{_libdir}/mpi/gcc
|
||||
%dir %{_datadir}/modules/gnu-openmpi
|
||||
%{_datadir}/modules/gnu-openmpi/%{version}
|
||||
%else # with hpc
|
||||
%hpc_mpi_dirs
|
||||
%hpc_modules_files
|
||||
%endif # with hpc
|
||||
#
|
||||
%{mpi_bindir}/mpirun
|
||||
%{mpi_bindir}/ompi-clean
|
||||
%{mpi_bindir}/ompi-server
|
||||
@@ -516,8 +688,11 @@ fi
|
||||
%{mpi_bindir}/oshrun
|
||||
%{mpi_bindir}/shmemrun
|
||||
%endif
|
||||
|
||||
%if %{without hpc}
|
||||
%{mpi_bindir}/aggregate_profile.pl
|
||||
%{mpi_bindir}/profile2mat.pl
|
||||
%endif
|
||||
|
||||
%dir %{mpi_datadir}/openmpi
|
||||
%dir %{mpi_datadir}/openmpi/amca-param-sets
|
||||
@@ -531,7 +706,7 @@ fi
|
||||
%{mpi_datadir}/pmix/help-*.txt
|
||||
%endif
|
||||
|
||||
%files libs
|
||||
%files %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
|
||||
%defattr(-,root,root)
|
||||
%dir %mpi_prefix/
|
||||
%dir %mpi_libdir/
|
||||
@@ -550,8 +725,10 @@ fi
|
||||
%{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
|
||||
@@ -585,7 +762,11 @@ fi
|
||||
|
||||
%files macros-devel
|
||||
%defattr(-,root,root,-)
|
||||
%if %{with hpc}
|
||||
%{_rpmmacrodir}/macros.hpc-openmpi
|
||||
%else
|
||||
%{_rpmmacrodir}/macros.openmpi
|
||||
%endif
|
||||
|
||||
%if 0%{?build_static_devel}
|
||||
%files devel-static
|
||||
@@ -596,13 +777,15 @@ fi
|
||||
%{mpi_libdir}/openmpi/*.a
|
||||
%endif
|
||||
|
||||
%files config
|
||||
%if %{without hpc}
|
||||
%files -n %{pname}%{m_f_ver}-config
|
||||
%config %{_sysconfdir}/openmpi-default-hostfile
|
||||
%config %{_sysconfdir}/openmpi-mca-params.conf
|
||||
%if %{without pmix}
|
||||
%config %{_sysconfdir}/pmix-mca-params.conf
|
||||
%endif
|
||||
%{_sysconfdir}/openmpi-totalview.tcl
|
||||
%endif
|
||||
|
||||
%endif # !?testsuite
|
||||
|
||||
|
@@ -1,80 +0,0 @@
|
||||
commit e74008f6c67c104f1eb59c488e2c22c0302c87e0
|
||||
Author: Jeff Squyres <jsquyres@cisco.com>
|
||||
Date: Fri Nov 18 06:50:24 2022 -0500
|
||||
|
||||
test/datatype/partial.c: fix compiler warnings
|
||||
|
||||
There are a bunch of other warnings in tests, but I was recently
|
||||
working with a user in this specific test, and the warnings annoyed
|
||||
me. So I fixed them in this test (but not other tests).
|
||||
|
||||
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
|
||||
(cherry picked from commit 98abc08a6e2a0a4181a823c1b81a238964710240)
|
||||
|
||||
diff --git test/datatype/partial.c test/datatype/partial.c
|
||||
index c064db7193dd..15ea0cad7800 100644
|
||||
--- test/datatype/partial.c
|
||||
+++ test/datatype/partial.c
|
||||
@@ -5,6 +5,7 @@
|
||||
* reserved.
|
||||
* Copyright (c) 2018 Triad National Security, LLC. All rights
|
||||
* reserved.
|
||||
+ * Copyright (c) 2022 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@@ -52,7 +53,7 @@ static void show_neighborhood(double* ptr, int how_many, bool show_hex)
|
||||
printf("\n : ");
|
||||
for( i = -how_many; i < how_many; i++ ) {
|
||||
if( 0 == i ) printf(" <");
|
||||
- for( int j = 0; j < sizeof(double); j++ ) {
|
||||
+ for( size_t j = 0; j < sizeof(double); j++ ) {
|
||||
printf("%02x", cptr[i * sizeof(double)+j]);
|
||||
}
|
||||
if( 0 == i ) printf("> ");
|
||||
@@ -71,7 +72,7 @@ static void show_neighborhood(double* ptr, int how_many, bool show_hex)
|
||||
|
||||
int main( int argc, char* argv[] )
|
||||
{
|
||||
- opal_datatype_t* vector;
|
||||
+ ompi_datatype_t* vector;
|
||||
ompi_datatype_t* base;
|
||||
uint32_t iov_count;
|
||||
size_t max_data, size, length;
|
||||
@@ -88,13 +89,13 @@ int main( int argc, char* argv[] )
|
||||
ompi_datatype_create_vector(TYPE_COUNT, TYPE_BLEN, TYPE_STRIDE, MPI_DOUBLE, &base);
|
||||
ompi_datatype_create_contiguous(CONT_COUNT, base, &vector);
|
||||
|
||||
- opal_datatype_commit( vector );
|
||||
+ opal_datatype_commit(&vector->super);
|
||||
|
||||
ompi_datatype_dump(vector);
|
||||
|
||||
- opal_datatype_type_size(vector, &size);
|
||||
- opal_datatype_type_extent(vector, &extent);
|
||||
- opal_datatype_type_extent(base, &base_extent);
|
||||
+ opal_datatype_type_size(&vector->super, &size);
|
||||
+ opal_datatype_type_extent(&vector->super, &extent);
|
||||
+ opal_datatype_type_extent(&base->super, &base_extent);
|
||||
|
||||
array = (double*)malloc( extent * COUNT );
|
||||
packed = (double*)malloc( size * COUNT );
|
||||
@@ -113,7 +114,7 @@ int main( int argc, char* argv[] )
|
||||
* of the buffered operation.
|
||||
*/
|
||||
convertor = opal_convertor_create( opal_local_arch, 0 );
|
||||
- opal_convertor_prepare_for_recv( convertor, vector, COUNT, array );
|
||||
+ opal_convertor_prepare_for_recv(convertor, &vector->super, COUNT, array);
|
||||
|
||||
for( length = 0; length < (size * COUNT); ) {
|
||||
iov[0].iov_base = bpacked + length;
|
||||
@@ -124,7 +125,8 @@ int main( int argc, char* argv[] )
|
||||
opal_convertor_unpack( convertor, iov, &iov_count, &max_data );
|
||||
length += max_data;
|
||||
|
||||
- int idx = 0, checked = 0;
|
||||
+ int idx = 0;
|
||||
+ size_t checked = 0;
|
||||
for( int m = 0; m < COUNT; m++ ) {
|
||||
char* mptr = (char*)array + m * extent;
|
||||
for( int k = 0; k < CONT_COUNT; k++ ) {
|
Reference in New Issue
Block a user