SHA256
6
0
forked from pool/openmpi5

22 Commits

Author SHA256 Message Date
Nicolas Morey
f02c6a436f Update to v5.0.9
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-10-31 09:07:37 +01:00
b719259536 Add Gitea build results 2025-10-27 17:35:41 +01:00
ca949bb47e Accepting request 1301458 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1301458
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=16
2025-08-27 19:33:20 +00:00
40a0347aed - Enable Grid Cluster Scheduler support (jsc#PED-13373)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=35
2025-08-26 15:20:44 +00:00
34902c0ee1 Accepting request 1285181 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1285181
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=15
2025-06-13 16:42:54 +00:00
8e7149c689 - Update to 5.0.8
- Functionality Enhancements
    - UCC collective operations:
      Improved handling of MPI_IN_PLACE in allgather, allgatherv, alltoall,
      alltoallv, gather, gatherv, scatter, and scatterv operations
    - UCX OSC: Added support for "no_locks" info key to disable lock table usage
    - OFI MTL: Enhanced CXI provider support for better compatibility
    - AARCH64: Added SVE detection alongside NEON in aarch64 op component
    - Fortran: Fixed common symbol sizes and alignments for better compatibility
  - Bug Fixes and Minor Enhancements
    - Hugepage Mpool: Fixed sizing of hugepages for better memory management
    - Configure: Fixed --with-prrte=internal option handling
    - Documentation: Updated shared memory and networking documentation
    - Build system: Fixed support for flang on OSX
    - Removed unused spread contrib sample scripts
    - Various documentation updates and improvements
    - CI: Removed Ubuntu 18 and RHEL 7 from test matrix
    - Fixed type mismatch errors in shared memory components
    - Updated Java configuration for latest Fedora releases
    - Fixed memory zone reference counting in UCX dynamic windows
- Remove Fix-type-mismatch-error.patch to fix a compilation error
  as it was merged upstream.

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=33
2025-06-12 14:32:45 +00:00
1a15b9e8fb Accepting request 1281139 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1281139
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=14
2025-06-01 19:36:13 +00:00
fc3217c927 - Add Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch to fix a 128b CAS issue on
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=31
2025-05-29 12:20:25 +00:00
a6f36aee74 - Fix bad git_ver appearing in VERSION
- Add disable-atomic-cas-128b-on-s390x.patch to fix a 128b CAS issue on
  s390x (bsc#1243680)

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=30
2025-05-27 09:07:36 +00:00
5ed905f310 Accepting request 1269645 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1269645
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=13
2025-04-16 18:37:24 +00:00
9230b55a54 - Remove bad dependency from openmpi5-testsuite to openmpi5-testsuite-libs
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=28
2025-04-15 14:18:56 +00:00
8e15dc437e Accepting request 1265555 from science:HPC
- Remove support for gnu-hpc build flavours.

- Disable gnu-hpc build flavours (bsc#1239982)

OBS-URL: https://build.opensuse.org/request/show/1265555
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=12
2025-04-03 14:45:49 +00:00
ee474d67d4 - Remove support for gnu-hpc build flavours.
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=26
2025-03-30 15:33:59 +00:00
0258f269ae - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=25
2025-03-24 16:01:06 +00:00
c912b32e5b Accepting request 1247230 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247230
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=11
2025-02-26 16:13:46 +00:00
1f7b9ae050 Accepting request 1247214 from home:NMorey:branches:science:HPC
- Update to 5.0.7 (jsc#PED-11356):
  - Updated UCX version requirement to v1.9
  - Documentation Improvements
    - Updated `coll tuned` rules file documentation to reflect changes in versioning and features.
    - Updated CUDA-related networking documentation for consistency.
    - Improved descriptions for `mpirun` options, including ``--pmixmca`` and ``--prtemca``.
    - Fixed typos and formatting issues in `mpirun` man pages.
  - Functionality Enhancements
    - Improved argument checking for ``MPI_Comm_create_from_group`` and ``MPI_Intercomm_create_from_groups`` to align with MPI 4.0 standards.
    - Addressed potential race conditions in `PMIx_Group_construct` calls by adding discriminators.
    - Fixed ``MPI_Wtime`` to initialize timing relative to ``MPI_Init`` for accurate session-level measurements.
    - Added support for the `alltoall_algorithm_max_requests` parameter in the `coll tuned` rules file, maintaining backward compatibility.
    - Introduced a version identifier for the `coll tuned` rules file for better parser handling.
    - Adjusted MCA variable scopes across multiple components to allow setting via the `MPI_T` interface: `coll adapt,ucc, han, basic, hcoll`
  - Bug Fixes and Minor Enhancements
    - Ensures that singletons properly create their own sessions directory trees.
    - Fixed community Jenkins build pipeline to handle branch commits properly.
    - Resolved missing profiling symbols in the `mpi_f08` Fortran library.
    - Corrected parameter mismatches in `coll/cuda` functions to avoid type issues.
    - Fixed build issues on Hurd.
    - Removed unused portions of rcache base structure.
    - Fixed oshmem base segment address exchange.
    - Fixed UCC collective fallback issue.
    - Updated Nvidia/Mellanox platform file
- openMPI 5 is now the default openmpi for suse_version >= 1600
- Switch to dist tarball to drop Sphinx and other python dependencies
- Add Fix-type-mismatch-error.patch to fix a compilation error

OBS-URL: https://build.opensuse.org/request/show/1247214
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=23
2025-02-19 20:06:01 +00:00
de5ba3a760 Accepting request 1232846 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1232846
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=10
2024-12-20 22:11:37 +00:00
52bc192a7f Accepting request 1232843 from home:NMorey:branches:science:HPC
- Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
  compilation issue with libfabric >= 2.0

- Update to 5.0.6 (jsc#PED-11356):
  - Session Management Enhancements:
    - Finalization Control: Ensures proper finalization of classes when references
      to the OPAL utility layer reach zero. A new smoke test has been added to
      validate this behavior.
    - Multiple Init/Finalize Handling: Improvements to handling session multiple
      initializations and finalizations, addressing issues with parameter
      management and session destruction.
  - MPI Communication and Resource Management:
    - Info Duplication: Enhanced `MPI_Info_dup` function to ensure consistent
      key management across duplicated info objects, supporting better memory
      and resource handling.
    - OFI/Initialization Improvements: Refactored code for OFI common components
      to support session-based initialization models per MPI 4 standards.
    - Resource Leak Fixes: Addressed memory leaks and reference count issues
      in several components to improve memory management and stability in
      high-demand environments.
  - Detailed Locking Protocol: Modified default file-locking protocols in UFS
    component to ensure data consistency, especially when using data-sieving
    operations, which require broader locking.
  - MPI_T Interface Enhancements: Modified MCA parameter settings to allow
    runtime tuning of collectives through the MPI_T interface, adding flexibility
    for dynamic rules in collective operations.
  - Corrected various documentation typos and clarified parameter settings in
    several API references, improving readability and usability for end users.
- Disable LTO as it is not supported by OpenPMIX
- Disable direct verbs (openib) support. It has been deprecated since v4.x.

OBS-URL: https://build.opensuse.org/request/show/1232843
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=21
2024-12-20 14:00:31 +00:00
f0092d065a Accepting request 1193453 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1193453
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=9
2024-08-13 11:24:03 +00:00
05e2363ac9 Accepting request 1193408 from home:NMorey:branches:science:HPC
- Update to 5.0.5
  - btl/ofi: retry posting receive buffer
  - btl/uct: check return status from some uct funcs
  - fortran: use -Wl,-ld_classic if supported
  - fortran: parameterize the install location of Fortran MPI bindings modulefiles
    via the configure --with-mpi-moduledir CLI option
  - fortran: various configury improvements
  - use-mpi-f08: add missing subroutines in the mpi_f08 module
  - pml/base: remove redundant copy of ompi_mpi_thread_multiple
  - pml/cm: release datatype object in send completion callback
  - pml/ucx: propagate MPI serialized thread mode for all worker creations
  - pml/ob1: make no. of events an mca parameter
  - oshmem/shmem: fix warnings regarding types and unused variables in shmem
  - Add an AARCH64 OP component for for NEON and SVE ISA
  - Fix MPI function names in error output
  - Fix MPI_Neighbor_alltoall{v,w}_init to handle NULL parameters
  - Fix a bug in intercomm creation
  - Fix a bug in ompi_comm_lookup function to handle partially ready communicators
  - Fix error message in ompi_comm_get_rproc
  - Fix opal_basename for single character filenames
  - Fix rpm build test
  - Fix the info subscriber mechanism and hidden info keys
  - Fix ulfm bugs in ishrink/agree/iagree
  - Improve libcuda.so find command to follow symlinks
  - Improve pkgconfig installation logic in script wrapper
  - Change default tar format to tar-pax
  - Various document updates

OBS-URL: https://build.opensuse.org/request/show/1193408
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=19
2024-08-12 14:28:38 +00:00
08dc5b5744 Accepting request 1183457 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1183457
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=8
2024-06-27 14:02:42 +00:00
fffe99f997 Accepting request 1183455 from home:NMorey:branches:science:HPC
- Update to 5.0.3
  - Fix HAN MPI_Scatter intra-node data count and type 
  - Add missing write memory barrier in btl/smcuda 
  - Fix MPI_Alltoallv and MPI_Ialltoallv data count and type check
  - Enhance cuda-aware build by detecting default --with-cuda-lib value
  - Enhance ofi NIC selection logic
  - Fix an illegal memory access bug in mtl/ofi
  - Multiple bugfixes in rocm accelerator 
  - Fix a double free bug in oshmem
  - Add missing oshmem headers
  - Fix uninitialized lock in btl/usnic
  - Fix uninitialized mutex in file_open
  - Fix compiler warnings about unused cid_base variable
  - Enhance autogen submodule checks
  - Various document updates

OBS-URL: https://build.opensuse.org/request/show/1183455
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=17
2024-06-26 14:32:44 +00:00
8 changed files with 269 additions and 266 deletions

12
README.md Normal file
View File

@@ -0,0 +1,12 @@
## Build Results
Current state of openmpi5 in openSUSE:Factory is
![Factory build results](https://br.opensuse.org/status/openSUSE:Factory/openmpi5/standard)
The current state of openmpi5 in the devel project build (science:HPC)
![Devel project build results](https://br.opensuse.org/status/science:HPC/openmpi5)

View File

@@ -1,6 +1,4 @@
<multibuild>
<package>standard</package>
<package>testsuite</package>
<package>gnu-hpc</package>
<package>gnu-hpc-testsuite</package>
</multibuild>

View File

@@ -1,17 +0,0 @@
<services>
<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>
<param name="exclude">.git</param>
<param name="filename">openmpi</param>
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="revision">6db5e83b737a9b70c4e77a2bcf06ab641adffe2a</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">openmpi*.tar</param>
<param name="compression">bz2</param>
</service>
</services>

View File

@@ -1,21 +0,0 @@
#
# 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

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a7bbdbb669d686bd7f62402be52c611acdc402125112f20f6b537757e5edba1a
size 15677588

BIN
openmpi-5.0.9.tar.bz2 LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,203 @@
-------------------------------------------------------------------
Fri Oct 31 07:56:03 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.9
- Functionality Enhancements
- GPFS: Added support for GPFS 5.2.3-0 and newer versions
- OFI: Enhanced accelerator memory support with proper rcache flag handling
- OFI: Added memory monitor export for better memory management
- ROCm: Added missing header for memcpy operations in accelerator component
- UCC: Set node local id for better collective operation performance
- UCX: Set node local id in PML component for improved communication
- Bug Fixes and Minor Enhancements
- PML OB1: Fixed critical bug in MCA_PML_OB1_ADD_ACK_TO_PENDING that could cause memory overruns or allocation failures
- CUDA: Fixed CUDA detection when multiple libcuda.so files exist in CUDA install directory
- Fortran: Fixed off-by-one string copy error in C2F string conversion
- Fortran: Fixed ompi string c2f conversion when Fortran string length is less than C string length
- Threading: Fixed OMPI_MPI_THREAD_LEVEL environment variable handling to allow useful overrides in threaded library use cases
- Threading: Enhanced OMPI_MPI_THREAD_LEVEL to accept both numeric (0-3) and string ('multiple', 'MPI_THREAD_MULTIPLE', etc.) values
- OSC: Fixed rdma component when not using ob1 PML
- S390x: Fixed alignment of opal_atomic_int128_t to be 16-byte aligned
- Configury: Improved Fortran complex(real16) testing and module file cleanup
- Documentation: Fixed MCA environment variable prefix documentation for PRRTE
- Documentation: Updated MPI_Init*/MPI_Finalize*/MPI_Session_* man pages with numerous improvements
- Build system: Removed whitespace from conftestval-style tests and cleaned up configuration
- Drop patches merged upstream:
- Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch
- mtl-ofi-fix-missing-definition-of-container_of.patch
-------------------------------------------------------------------
Tue Aug 5 18:48:52 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Enable Grid Cluster Scheduler support (jsc#PED-13373)
-------------------------------------------------------------------
Thu Jun 12 08:35:43 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.8
- Functionality Enhancements
- UCC collective operations:
Improved handling of MPI_IN_PLACE in allgather, allgatherv, alltoall,
alltoallv, gather, gatherv, scatter, and scatterv operations
- UCX OSC: Added support for "no_locks" info key to disable lock table usage
- OFI MTL: Enhanced CXI provider support for better compatibility
- AARCH64: Added SVE detection alongside NEON in aarch64 op component
- Fortran: Fixed common symbol sizes and alignments for better compatibility
- Bug Fixes and Minor Enhancements
- Hugepage Mpool: Fixed sizing of hugepages for better memory management
- Configure: Fixed --with-prrte=internal option handling
- Documentation: Updated shared memory and networking documentation
- Build system: Fixed support for flang on OSX
- Removed unused spread contrib sample scripts
- Various documentation updates and improvements
- CI: Removed Ubuntu 18 and RHEL 7 from test matrix
- Fixed type mismatch errors in shared memory components
- Updated Java configuration for latest Fedora releases
- Fixed memory zone reference counting in UCX dynamic windows
- Remove Fix-type-mismatch-error.patch to fix a compilation error
as it was merged upstream.
-------------------------------------------------------------------
Mon May 26 15:52:53 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Fix bad git_ver appearing in VERSION
- Add Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch to fix a 128b CAS issue on
s390x (bsc#1243680)
-------------------------------------------------------------------
Tue Apr 15 11:18:46 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove bad dependency from openmpi5-testsuite to openmpi5-testsuite-libs
-------------------------------------------------------------------
Sat Mar 29 14:47:03 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove support for gnu-hpc build flavours.
-------------------------------------------------------------------
Mon Mar 24 12:52:42 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Wed Feb 19 15:57:56 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.7 (jsc#PED-11356):
- Updated UCX version requirement to v1.9
- Documentation Improvements
- Updated `coll tuned` rules file documentation to reflect changes in versioning and features.
- Updated CUDA-related networking documentation for consistency.
- Improved descriptions for `mpirun` options, including ``--pmixmca`` and ``--prtemca``.
- Fixed typos and formatting issues in `mpirun` man pages.
- Functionality Enhancements
- Improved argument checking for ``MPI_Comm_create_from_group`` and ``MPI_Intercomm_create_from_groups`` to align with MPI 4.0 standards.
- Addressed potential race conditions in `PMIx_Group_construct` calls by adding discriminators.
- Fixed ``MPI_Wtime`` to initialize timing relative to ``MPI_Init`` for accurate session-level measurements.
- Added support for the `alltoall_algorithm_max_requests` parameter in the `coll tuned` rules file, maintaining backward compatibility.
- Introduced a version identifier for the `coll tuned` rules file for better parser handling.
- Adjusted MCA variable scopes across multiple components to allow setting via the `MPI_T` interface: `coll adapt,ucc, han, basic, hcoll`
- Bug Fixes and Minor Enhancements
- Ensures that singletons properly create their own sessions directory trees.
- Fixed community Jenkins build pipeline to handle branch commits properly.
- Resolved missing profiling symbols in the `mpi_f08` Fortran library.
- Corrected parameter mismatches in `coll/cuda` functions to avoid type issues.
- Fixed build issues on Hurd.
- Removed unused portions of rcache base structure.
- Fixed oshmem base segment address exchange.
- Fixed UCC collective fallback issue.
- Updated Nvidia/Mellanox platform file
- openMPI 5 is now the default openmpi for suse_version >= 1600
- Switch to dist tarball to drop Sphinx and other python dependencies
- Add Fix-type-mismatch-error.patch to fix a compilation error
-------------------------------------------------------------------
Fri Dec 20 11:50:25 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
compilation issue with libfabric >= 2.0
-------------------------------------------------------------------
Tue Nov 26 07:14:11 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.6 (jsc#PED-11356):
- Session Management Enhancements:
- Finalization Control: Ensures proper finalization of classes when references
to the OPAL utility layer reach zero. A new smoke test has been added to
validate this behavior.
- Multiple Init/Finalize Handling: Improvements to handling session multiple
initializations and finalizations, addressing issues with parameter
management and session destruction.
- MPI Communication and Resource Management:
- Info Duplication: Enhanced `MPI_Info_dup` function to ensure consistent
key management across duplicated info objects, supporting better memory
and resource handling.
- OFI/Initialization Improvements: Refactored code for OFI common components
to support session-based initialization models per MPI 4 standards.
- Resource Leak Fixes: Addressed memory leaks and reference count issues
in several components to improve memory management and stability in
high-demand environments.
- Detailed Locking Protocol: Modified default file-locking protocols in UFS
component to ensure data consistency, especially when using data-sieving
operations, which require broader locking.
- MPI_T Interface Enhancements: Modified MCA parameter settings to allow
runtime tuning of collectives through the MPI_T interface, adding flexibility
for dynamic rules in collective operations.
- Corrected various documentation typos and clarified parameter settings in
several API references, improving readability and usability for end users.
- Disable LTO as it is not supported by OpenPMIX
- Disable direct verbs (openib) support. It has been deprecated since v4.x.
RDMA devices should now be used through ofi/libfabric.
-------------------------------------------------------------------
Mon Aug 12 09:52:54 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.5
- btl/ofi: retry posting receive buffer
- btl/uct: check return status from some uct funcs
- fortran: use -Wl,-ld_classic if supported
- fortran: parameterize the install location of Fortran MPI bindings modulefiles
via the configure --with-mpi-moduledir CLI option
- fortran: various configury improvements
- use-mpi-f08: add missing subroutines in the mpi_f08 module
- pml/base: remove redundant copy of ompi_mpi_thread_multiple
- pml/cm: release datatype object in send completion callback
- pml/ucx: propagate MPI serialized thread mode for all worker creations
- pml/ob1: make no. of events an mca parameter
- oshmem/shmem: fix warnings regarding types and unused variables in shmem
- Add an AARCH64 OP component for for NEON and SVE ISA
- Fix MPI function names in error output
- Fix MPI_Neighbor_alltoall{v,w}_init to handle NULL parameters
- Fix a bug in intercomm creation
- Fix a bug in ompi_comm_lookup function to handle partially ready communicators
- Fix error message in ompi_comm_get_rproc
- Fix opal_basename for single character filenames
- Fix rpm build test
- Fix the info subscriber mechanism and hidden info keys
- Fix ulfm bugs in ishrink/agree/iagree
- Improve libcuda.so find command to follow symlinks
- Improve pkgconfig installation logic in script wrapper
- Change default tar format to tar-pax
- Various document updates
-------------------------------------------------------------------
Wed Jun 26 08:18:40 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.3
- Fix HAN MPI_Scatter intra-node data count and type
- Add missing write memory barrier in btl/smcuda
- Fix MPI_Alltoallv and MPI_Ialltoallv data count and type check
- Enhance cuda-aware build by detecting default --with-cuda-lib value
- Enhance ofi NIC selection logic
- Fix an illegal memory access bug in mtl/ofi
- Multiple bugfixes in rocm accelerator
- Fix a double free bug in oshmem
- Add missing oshmem headers
- Fix uninitialized lock in btl/usnic
- Fix uninitialized mutex in file_open
- Fix compiler warnings about unused cid_base variable
- Enhance autogen submodule checks
- Various document updates
-------------------------------------------------------------------
Mon Mar 25 07:40:50 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package openmpi5
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
@@ -37,102 +37,55 @@
%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
%define pname openmpi
%define _vers 5_0_2
%define m_f_ver 5
%bcond_with ringdisabled
%if "%flavor" == ""
ExclusiveArch: do_not_build
%{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"
%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"
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" == "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
%if "%flavor" == "testsuite"
%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} >= 1600)
%define default_openmpi 1
%else
%define default_openmpi 0
%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}
%endif
%define git_ver .0.6db5e83b737a
#############################################################################
#
# Preamble Section
#
#############################################################################
Name: %{package_name}%{?testsuite:-testsuite}
Version: 5.0.2
Name: openmpi5%{?testsuite:-testsuite}
Version: 5.0.9
Release: 0
Summary: An implementation of MPI/SHMEM (Version %{m_f_ver})
Summary: An implementation of MPI/SHMEM (Version 5)
License: BSD-3-Clause
Group: Development/Libraries/Parallel
URL: http://www.open-mpi.org/
Source0: openmpi-%{version}%{git_ver}.tar.bz2
Source0: https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-%{version}.tar.bz2
Source2: openmpi5-rpmlintrc
Source3: macros.hpc-openmpi
Source4: mpivars.sh
Source5: mpivars.csh
Source100: README.md
Patch1: romio341-backport-fixes-from-mpich.patch
Provides: mpi
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -146,16 +99,13 @@ BuildRequires: hwloc-devel
BuildRequires: libevent-devel
BuildRequires: libfabric-devel
BuildRequires: libibumad-devel
BuildRequires: libibverbs-devel
BuildRequires: libtool
# net-tools is required to run hostname
BuildRequires: net-tools
BuildRequires: python3
BuildRequires: python3-Sphinx >= 4.2.0
BuildRequires: python3-recommonmark
%if 0%{?testsuite}
BuildArch: noarch
BuildRequires: %{package_name} = %{version}
BuildRequires: openmpi5 = %{version}
%endif
%if 0%{?with_ucx}
BuildRequires: libucm-devel
@@ -163,22 +113,14 @@ BuildRequires: libucp-devel
BuildRequires: libucs-devel
BuildRequires: libuct-devel
%endif
%if %{without hpc}
BuildRequires: Modules
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: mpi-selector
Requires: mpi-selector
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
Requires(preun): mpi-selector
%if !0%{?testsuite}
Requires: %{name}-libs = %{version}
%endif
%ifarch x86_64
@@ -188,7 +130,7 @@ BuildRequires: numactl
%endif
Requires: openmpi-runtime-config
Recommends: openmpi%{m_f_ver}-config
Recommends: %{name}-config
%if 0%{?default_openmpi}
Provides: openmpi = %{version}
%endif
@@ -196,26 +138,14 @@ Provides: openmpi = %{version}
# Force ssh to make sure the install works out of the box
Requires: openssh
%if %{without hpc}
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi%{m_f_ver}
%define mpi_prefix %{_libdir}/mpi/gcc/%{name}
%define mpi_bindir %{mpi_prefix}/bin
%define mpi_libdir %{mpi_prefix}/%{_lib}
%define mpi_datadir %{mpi_prefix}/share
%define mpi_helpdir %{mpi_datadir}/%{pname}%{m_f_ver}
%define mpi_helpdir %{mpi_datadir}/%{name}
%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}
@@ -235,20 +165,19 @@ 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 %{m_f_ver} jobs.
running Open MPI/OpenSHMEM version %{version} jobs.
%endif
%if 0%{!?testsuite:1}
%package %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
%package libs
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 %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
%description libs
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
@@ -260,22 +189,17 @@ 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 %{m_f_ver}
This package provides the Open MPI/OpenSHMEM version %{version}
shared libraries.
%package devel
Summary: SDK for openMPI %{?with_hpc:HPC} version %{version}
Summary: SDK for openMPI 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
@@ -291,11 +215,11 @@ abstraction layer providing inter-process communication using
one-sided communication techniques.
This package provides the development files for Open MPI/OpenSHMEM
version %{m_f_ver}, such as wrapper compilers and header files for
version %{version}, such as wrapper compilers and header files for
MPI/OpenSHMEM development.
%package docs
Summary: Documentation for Open MPI/SHMEM %{?with_hpc:HPC} version %{version}
Summary: Documentation for Open MPI/SHMEM version %{version}
Group: Documentation/Man
Requires: %{name} = %{version}
@@ -318,11 +242,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: %{pname}-macros-provider = %{version}
Conflicts: otherproviders(%{pname}-macros-provider)
Provides: openmpi-macros-provider = %{version}
Conflicts: otherproviders(openmpi-macros-provider)
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag
# to avoid issue with older packages
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
Conflicts: otherproviders(openmpi-hpc-macros-devel)
%if 0%{?default_openmpi}
Provides: openmpi-macros-devel = %{version}
@@ -333,7 +257,7 @@ Macros for building RPM packages for OpenMPI version %{version}.
%if 0%{?build_static_devel}
%package devel-static
Summary: Static libraries for openMPI %{?with_hpc:HPC} version %{version}
Summary: Static libraries for openMPI version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
%if 0%{?default_openmpi}
@@ -351,9 +275,8 @@ This RPM contains the static library files, which are packaged separately from
the dynamic library and headers.
%endif
%if %{without hpc}
%package -n %{pname}%{m_f_ver}-config
Summary: Runtime configuration files for openMPI %{?with_hpc:HPC} version %{version}
%package config
Summary: Runtime configuration files for openMPI version %{version}
Group: Development/Libraries/Parallel
Provides: openmpi-runtime-config = %{version}
Conflicts: otherproviders(openmpi-runtime-config)
@@ -361,7 +284,7 @@ Conflicts: otherproviders(openmpi-runtime-config)
Provides: pmix-runtime-config = %{version}
Conflicts: otherproviders(pmix-runtime-config)
%description -n %{pname}%{m_f_ver}-config
%description 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
@@ -369,26 +292,13 @@ 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
# We do provide our own PMIx and should not create any requires/excludes
%global __provides_exclude_from %{mpi_libdir}/libpmix.*.so
%global __requires_exclude libpmix*
%if "%(echo %version | tr '.' '_')" != "%_vers"
%{error: Fix _vers variable to match package version!}
%endif
#############################################################################
#
# Prepatory Section
@@ -396,16 +306,10 @@ This RPM contains the configuration files for OpenMPI runtime (Version 3).
#############################################################################
%prep
echo FLAVOR %{flavor}
%if %{with hpc}
echo with HPC
%endif
%if %{without hpc}
echo without HPC
%endif
%autosetup -p0 -n openmpi-%{version}%{git_ver}
%autosetup -p0 -n openmpi-%{version}
# Live patch the VERSION file
sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{version}%{git_ver}/' \
sed -i -e 's/^greek=.*$/greek=/' -e 's/^repo_rev=.*$/repo_rev=%{version}/' \
-e 's/^date=.*$/date="OpenMPI %{version} Distribution for SUSE"/' VERSION
#############################################################################
@@ -419,15 +323,14 @@ sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{versio
export USER=OBS
export HOSTNAME=OBS
# OBS sets SOURCE_DATE_EPOCH
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%{?with_hpc:%hpc_debug}
# Remove .gitmodules so autogen.pl does not try to run git commands
find . -name .gitmodules -delete
# OpenPMIx does not support LTO:
# configure: WARNING: Configure has detected the presence of the -flto
# configure: WARNING: compiler directive in CFLAGS. PMIx does not currently
# configure: WARNING: support this flag as it conflicts with the
# configure: WARNING: plugin architecture of the PMIx library.
# configure: error: Please remove this directive and re-run configure.
%global _lto_cflags %{nil}
./autogen.pl --force --no-3rdparty libevent,hwloc
%if %{with hpc}
%{hpc_setup}
%{hpc_configure} \
%else
%{configure} \
--prefix="%{mpi_prefix}" \
--exec-prefix="%{mpi_prefix}" \
@@ -436,13 +339,12 @@ find . -name .gitmodules -delete
--includedir="%{mpi_includedir}" \
--libdir="%{mpi_libdir}" \
--mandir="%{mpi_mandir}" \
%endif
--with-libevent=external \
--with-hwloc=external \
%{?build_static_devel:--enable-static} \
%{!?build_static_devel:--disable-static} \
--enable-builtin-atomics \
--with-verbs \
--without-verbs \
--with-libfabric \
%if 0%{?with_ucx}
--with-ucx \
@@ -450,6 +352,7 @@ find . -name .gitmodules -delete
--enable-mpi-thread-multiple \
--disable-wrapper-rpath \
--with-slurm \
--with-sge \
%if 0%{?with_ucx}
--with-ucx \
--with-ucx-libdir=/usr/%_lib \
@@ -483,7 +386,6 @@ make check
#############################################################################
%install
%{?with_hpc:%{hpc_setup_compiler}}
make install DESTDIR="%buildroot"
# sanitize .la files
@@ -516,7 +418,6 @@ 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
@@ -553,56 +454,7 @@ 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}/prte-default-hostfile
rm -f %{buildroot}%{_sysconfdir}/prte-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/openmpi-totalview.tcl
rm -f %{buildroot}%{_sysconfdir}/pmix-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/openmpi-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/prte.conf
%endif
%if %{without hpc}
%post
# Always register. We might be already registered in the case of an udate
# but mpi-selector handles it fine
@@ -623,18 +475,10 @@ 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)
%doc docs/news/news-v5.0.x.rst README.md
%doc docs/release-notes/changelog/v5.0.x.rst README.md
%license LICENSE
%dir %{mpi_prefix}
%dir %{mpi_bindir}
@@ -643,20 +487,15 @@ 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}/oshrun
%{mpi_bindir}/mpirun
%{mpi_bindir}/ompi_info
%{mpi_bindir}/palloc
%{mpi_bindir}/pattrs
%{mpi_bindir}/pctrl
%{mpi_bindir}/pevent
@@ -687,7 +526,7 @@ fi
%{mpi_datadir}/prte/amca-param-sets/example.conf
%{mpi_datadir}/prte/help-*.txt
%files %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
%files libs
%defattr(-,root,root)
%dir %mpi_prefix/
%dir %mpi_libdir/
@@ -707,10 +546,8 @@ 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
@@ -743,11 +580,7 @@ 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
@@ -758,15 +591,13 @@ fi
%{mpi_libdir}/openmpi/*.a
%endif
%if %{without hpc}
%files -n %{pname}%{m_f_ver}-config
%files config
%config %{_sysconfdir}/prte-default-hostfile
%config %{_sysconfdir}/prte-mca-params.conf
%config %{_sysconfdir}/pmix-mca-params.conf
%config %{_sysconfdir}/openmpi-mca-params.conf
%{_sysconfdir}/openmpi-totalview.tcl
%config %{_sysconfdir}/prte.conf
%endif
%endif # !?testsuite