Compare commits
20 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d46d1d9b61 | ||
|
|
32751bdeb8 | ||
|
|
e3e1783aa5 | ||
|
|
79e515a9bf | ||
|
|
107d2a8e74 | ||
|
|
b7ffd3ae60 | ||
|
|
44268f7cc8 | ||
|
|
ddbbcc8a9c | ||
|
|
fc3843f7f1 | ||
|
|
0f5839e458 | ||
|
|
2811785c6e | ||
|
|
03257e2bed | ||
|
|
a46a18a27f | ||
|
|
dbd8fb83f5 | ||
|
|
cf679b9c33 | ||
|
|
7c735869e6 | ||
|
|
792dbe38f0 | ||
|
|
79bdb19e78 | ||
|
|
adb4f4609e | ||
|
|
61df4659f6 |
7 changed files with 86 additions and 70 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -69,3 +69,5 @@ openmpi-1.4.1-RH.tar.bz2
|
|||
/openmpi-5.0.5.tar.bz2
|
||||
/openmpi-5.0.6.tar.bz2
|
||||
/openmpi-5.0.8.tar.bz2
|
||||
/openmpi-5.0.9.tar.bz2
|
||||
/openmpi-5.0.10.tar.bz2
|
||||
|
|
|
|||
30
13281.patch
30
13281.patch
|
|
@ -1,30 +0,0 @@
|
|||
From d5c84ea4595ea1fbb5b213621e0966ebe0fd3cc9 Mon Sep 17 00:00:00 2001
|
||||
From: Joseph Schuchart <joseph.schuchart@stonybrook.edu>
|
||||
Date: Wed, 28 May 2025 10:11:58 -0400
|
||||
Subject: [PATCH] Force alignment of opal_atomic_int128_t to be 16B
|
||||
|
||||
Some architectures will align 128bit integer on 8B but require 16B alignment
|
||||
for 128bit CAS instructions and otherwise fall back to a lock-based
|
||||
atomicity model. By forcing 16bit alignment we can ensure that the variables
|
||||
are properly aligned and the fall-back is not triggered.
|
||||
|
||||
Thanks to Ulrich Weigand for the analysis and proposed fix in https://github.com/open-mpi/ompi/issues/10988#issuecomment-2913388506.
|
||||
|
||||
Signed-off-by: Joseph Schuchart <joseph.schuchart@stonybrook.edu>
|
||||
---
|
||||
opal/include/opal_stdatomic.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/opal/include/opal_stdatomic.h b/opal/include/opal_stdatomic.h
|
||||
index 35437551208..f7dd8353d3b 100644
|
||||
--- a/opal/include/opal_stdatomic.h
|
||||
+++ b/opal/include/opal_stdatomic.h
|
||||
@@ -72,7 +72,7 @@ typedef _Atomic opal_int128_t opal_atomic_int128_t;
|
||||
|
||||
# else
|
||||
|
||||
-typedef volatile opal_int128_t opal_atomic_int128_t;
|
||||
+typedef volatile opal_int128_t opal_atomic_int128_t __opal_attribute_aligned__(16);
|
||||
|
||||
# endif
|
||||
|
||||
16
openmpi-braces.patch
Normal file
16
openmpi-braces.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/oshmem/mca/memheap/base/memheap_base_frame.c b/oshmem/mca/memheap/base/memheap_base_frame.c
|
||||
index 53a71b27a9..82658e0979 100644
|
||||
--- a/oshmem/mca/memheap/base/memheap_base_frame.c
|
||||
+++ b/oshmem/mca/memheap/base/memheap_base_frame.c
|
||||
@@ -33,9 +33,9 @@
|
||||
|
||||
int mca_memheap_base_output = -1;
|
||||
int mca_memheap_base_key_exchange = 1;
|
||||
-opal_list_t mca_memheap_base_components_opened = {{0}};
|
||||
+opal_list_t mca_memheap_base_components_opened = {};
|
||||
int mca_memheap_base_already_opened = 0;
|
||||
-mca_memheap_map_t mca_memheap_base_map = {{{{0}}}};
|
||||
+mca_memheap_map_t mca_memheap_base_map = {};
|
||||
int mca_memheap_num_segments_warn = 32;
|
||||
|
||||
static int mca_memheap_base_register(mca_base_register_flag_t flags)
|
||||
31
openmpi-drop-recommonmark.patch
Normal file
31
openmpi-drop-recommonmark.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
diff -ru openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4
|
||||
--- openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 2026-02-23 21:21:40.731399193 +0100
|
||||
+++ openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4 2026-07-27 17:10:12.450825327 +0200
|
||||
@@ -115,7 +115,7 @@
|
||||
author = 'Testing'
|
||||
import sphinx_rtd_theme
|
||||
# Note the extra quoting needed for square brackets because this is m4
|
||||
-extensions = [[ 'recommonmark', 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]]
|
||||
+extensions = [[ 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]]
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
EOF
|
||||
echo "Hello world" > index.rst
|
||||
diff -ru openmpi-5.0.10/docs/conf.py openmpi-5.0.10-new/docs/conf.py
|
||||
--- openmpi-5.0.10/docs/conf.py 2026-02-23 21:21:10.775279351 +0100
|
||||
+++ openmpi-5.0.10-new/docs/conf.py 2026-07-27 17:10:34.017830912 +0200
|
||||
@@ -174,7 +174,6 @@
|
||||
# ones.
|
||||
import sphinx_rtd_theme
|
||||
extensions = [
|
||||
- 'recommonmark',
|
||||
"sphinx_rtd_theme",
|
||||
"sphinx.ext.extlinks",
|
||||
]
|
||||
diff -ru openmpi-5.0.10/docs/requirements.txt openmpi-5.0.10-new/docs/requirements.txt
|
||||
--- openmpi-5.0.10/docs/requirements.txt 2026-02-23 21:21:10.811279501 +0100
|
||||
+++ openmpi-5.0.10-new/docs/requirements.txt 2026-07-27 17:10:43.482113314 +0200
|
||||
@@ -1,4 +1,3 @@
|
||||
sphinx>=4.2.0
|
||||
-recommonmark
|
||||
docutils
|
||||
sphinx-rtd-theme
|
||||
13
openmpi-inline.patch
Normal file
13
openmpi-inline.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/ompi/mca/part/persist/part_persist.h b/ompi/mca/part/persist/part_persist.h
|
||||
index ccc8f8f197..86fb9bac42 100644
|
||||
--- a/ompi/mca/part/persist/part_persist.h
|
||||
+++ b/ompi/mca/part/persist/part_persist.h
|
||||
@@ -490,7 +490,7 @@ mca_part_persist_psend_init(const void* buf,
|
||||
return err;
|
||||
}
|
||||
|
||||
-__opal_attribute_always_inline__ static inline int
|
||||
+static inline int
|
||||
mca_part_persist_start(size_t count, ompi_request_t** requests)
|
||||
{
|
||||
int err = OMPI_SUCCESS;
|
||||
62
openmpi.spec
62
openmpi.spec
|
|
@ -12,13 +12,7 @@
|
|||
%bcond_with ucx
|
||||
%endif
|
||||
|
||||
# ARM 32-bit is not supported by rdma
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1780584
|
||||
%ifarch %{arm}
|
||||
%bcond_with rdma
|
||||
%else
|
||||
%bcond_without rdma
|
||||
%endif
|
||||
|
||||
# No more Java on i686
|
||||
%ifarch %{java_arches}
|
||||
|
|
@ -49,14 +43,22 @@
|
|||
%bcond_without pmix
|
||||
|
||||
# Run autogen - needed for some patches
|
||||
%bcond autogen 0
|
||||
%bcond autogen 1
|
||||
|
||||
Name: openmpi%{?_cc_name_suffix}
|
||||
Version: 5.0.8
|
||||
Version: 5.0.10
|
||||
Release: %autorelease
|
||||
Summary: Open Message Passing Interface
|
||||
# Automatically converted from old format: BSD and MIT and Romio - review is highly recommended.
|
||||
License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio
|
||||
# main code is BSD-3-Clause-Open-MPI
|
||||
# 3rd-party/romio341 is mpich2
|
||||
# 3rd-party/treematch is BSD-3-Clause
|
||||
# oshmem/mca/memheap/ptmalloc/malloc.c is LicenseRef-Fedora-Public-Domain
|
||||
# opal/util/qsort.c is BSD-4-Clause-UC
|
||||
# java/ (in subpackage) is Apache-2.0
|
||||
# 3rd-party/openpmix/src/mca/psec/munge/psec_munge.c is LGPL-2.0-or-later
|
||||
# doc/ see bellow in subpackage
|
||||
License: BSD-3-Clause-Open-MPI AND mpich2 AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain AND BSD-4-Clause-UC
|
||||
URL: http://www.open-mpi.org/
|
||||
ExcludeArch: %{ix86}
|
||||
|
||||
|
|
@ -65,8 +67,12 @@ Source0: https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-%{
|
|||
Source1: openmpi.module.in
|
||||
Source3: openmpi.pth.py3
|
||||
Source4: macros.openmpi
|
||||
|
||||
Patch0: https://github.com/open-mpi/ompi/pull/13281.patch
|
||||
# Fix always inline failure - https://github.com/open-mpi/ompi/pull/13756
|
||||
Patch: openmpi-inline.patch
|
||||
# Fix brace initialization - https://github.com/open-mpi/ompi/pull/13758
|
||||
Patch: openmpi-braces.patch
|
||||
# Drop unused recommonmark - https://github.com/open-mpi/ompi/pull/14215
|
||||
Patch: openmpi-drop-recommonmark.patch
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-gfortran
|
||||
|
|
@ -80,7 +86,6 @@ BuildRequires: perl(File::Find)
|
|||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
%if %{with rdma}
|
||||
BuildRequires: opensm-devel > 3.3.0
|
||||
BuildRequires: rdma-core-devel
|
||||
%endif
|
||||
# Doesn't compile:
|
||||
|
|
@ -88,18 +93,14 @@ BuildRequires: rdma-core-devel
|
|||
# loop->getLoopHead()->getStartAddress(), loop_stmts );
|
||||
#BuildRequires: dyninst-devel
|
||||
BuildRequires: hwloc-devel
|
||||
# So configure can find lstopo
|
||||
BuildRequires: hwloc-gui
|
||||
%if %{with java}
|
||||
BuildRequires: java-devel
|
||||
BuildRequires: java-25-devel
|
||||
%else
|
||||
Obsoletes: %{name}-java < %{version}-%{release}
|
||||
Obsoletes: %{name}-java-devel < %{version}-%{release}
|
||||
%endif
|
||||
# Old libevent causes issues
|
||||
%if !0%{?el7}
|
||||
BuildRequires: libevent-devel
|
||||
%endif
|
||||
BuildRequires: libfabric-devel
|
||||
%ifnarch s390x
|
||||
BuildRequires: papi-devel
|
||||
|
|
@ -113,8 +114,6 @@ BuildRequires: perl(Getopt::Long)
|
|||
%if %{with pmix}
|
||||
BuildRequires: pmix-devel >= 4.2.7
|
||||
%endif
|
||||
# For configure to find /usr/bin/prte
|
||||
BuildRequires: prrte
|
||||
BuildRequires: prrte-devel
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
%if %{with psm2}
|
||||
|
|
@ -124,21 +123,14 @@ BuildRequires: libpsm2-devel
|
|||
BuildRequires: ucx-devel
|
||||
%endif
|
||||
BuildRequires: zlib-devel
|
||||
%if !0%{?el7}
|
||||
BuildRequires: rpm-mpi-hooks
|
||||
%endif
|
||||
%if %{with sphinx}
|
||||
# For docs
|
||||
BuildRequires: /usr/bin/sphinx-build
|
||||
BuildRequires: python3-recommonmark
|
||||
BuildRequires: python3-sphinx_rtd_theme
|
||||
%endif
|
||||
|
||||
Provides: mpi
|
||||
%if 0%{?rhel} == 7
|
||||
# Need this for /etc/profile.d/modules.sh
|
||||
Requires: environment-modules
|
||||
%endif
|
||||
Requires: environment(modules)
|
||||
Requires: prrte
|
||||
# openmpi currently requires ssh to run
|
||||
|
|
@ -162,19 +154,18 @@ researchers. For more information, see http://www.open-mpi.org/ .
|
|||
Summary: Development files for openmpi
|
||||
Requires: %{name} = %{version}-%{release}, gcc-gfortran
|
||||
Provides: mpi-devel
|
||||
%if !0%{?el7}
|
||||
Requires: rpm-mpi-hooks
|
||||
# Make sure this package is rebuilt with correct Python version when updating
|
||||
# Otherwise mpi.req from rpm-mpi-hooks doesn't work
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1705296
|
||||
Requires: (python(abi) = %{python3_version} if python3)
|
||||
%endif
|
||||
|
||||
%description devel
|
||||
Contains development headers and libraries for openmpi.
|
||||
|
||||
%package doc
|
||||
Summary: HTML documentation for openmpi
|
||||
License: BSD-3-Clause AND BSD-3-Clause-Open-MPI AND mpich2 AND MIT AND (MIT OR GPL-2.0-or-later) AND (OFL-1.1 AND MIT)
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
|
|
@ -183,16 +174,18 @@ HTML documentation for openmpi.
|
|||
%if %{with java}
|
||||
%package java
|
||||
Summary: Java library
|
||||
License: Apache-2.0
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: java-headless
|
||||
Requires: java-25-headless
|
||||
|
||||
%description java
|
||||
Java library.
|
||||
|
||||
%package java-devel
|
||||
Summary: Java development files for openmpi
|
||||
License: Apache-2.0
|
||||
Requires: %{name}-java = %{version}-%{release}
|
||||
Requires: java-devel
|
||||
Requires: java-25-devel
|
||||
|
||||
%description java-devel
|
||||
Contains development wrapper for compiling Java with openmpi.
|
||||
|
|
@ -241,12 +234,10 @@ OpenMPI support for Python 3.
|
|||
--enable-memchecker \
|
||||
%endif
|
||||
--with-hwloc=/usr \
|
||||
%if !0%{?el7}
|
||||
--with-libevent=external \
|
||||
%if %{with pmix}
|
||||
--with-pmix=external \
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%make_build V=1
|
||||
|
||||
|
|
@ -312,7 +303,6 @@ make check || ( cat test/*/test-suite.log && exit $fail )
|
|||
%dir %{_libdir}/%{name}/bin
|
||||
%dir %{_libdir}/%{name}/lib
|
||||
%dir %{_libdir}/%{name}/lib/openmpi
|
||||
%dir %{_libdir}/%{name}/lib/openmpi/cmake
|
||||
%dir %{_libdir}/%{name}/include
|
||||
%dir %{_mandir}/%{namearch}
|
||||
%dir %{_mandir}/%{namearch}/man*
|
||||
|
|
@ -341,9 +331,6 @@ make check || ( cat test/*/test-suite.log && exit $fail )
|
|||
%{_mandir}/%{namearch}/man7/Open-MPI.7*
|
||||
%{_libdir}/%{name}/lib/*.so.40*
|
||||
%{_libdir}/%{name}/lib/*.so.80*
|
||||
%if 0%{?el7}
|
||||
%{_libdir}/%{name}/lib/pmix/
|
||||
%endif
|
||||
%{_mandir}/%{namearch}/man1/mpirun.1*
|
||||
%{_mandir}/%{namearch}/man1/mpisync.1*
|
||||
%{_mandir}/%{namearch}/man1/ompi*
|
||||
|
|
@ -356,9 +343,6 @@ make check || ( cat test/*/test-suite.log && exit $fail )
|
|||
%dir %{_libdir}/%{name}/share/openmpi
|
||||
%{_libdir}/%{name}/share/openmpi/amca-param-sets
|
||||
%{_libdir}/%{name}/share/openmpi/help*.txt
|
||||
%if 0%{?el7}
|
||||
%{_libdir}/%{name}/share/pmix/
|
||||
%endif
|
||||
|
||||
%files devel
|
||||
%dir %{_includedir}/%{namearch}
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (openmpi-5.0.8.tar.bz2) = de9128edaa1886f90f1452b8cee3c3962d7666beed96d7b95c601278c2debc7d7efecc9403792d428ce12131ce30416d6bc6bb657fb1a5490f53c6b6e369b080
|
||||
SHA512 (openmpi-5.0.10.tar.bz2) = 24d29c2e88549e5a59f47dac0a2327db99644c59fd2991441d0ec23edb95aa7328fcd67bd44601ce9f11b0af90d36fddf82643e23f0f6e7c013c99f9bbd9738e
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue