Compare commits
22 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
f02c6a436f | ||
| b719259536 | |||
| ca949bb47e | |||
| 40a0347aed | |||
| 34902c0ee1 | |||
| 8e7149c689 | |||
| 1a15b9e8fb | |||
| fc3217c927 | |||
| a6f36aee74 | |||
| 5ed905f310 | |||
| 9230b55a54 | |||
| 8e15dc437e | |||
| ee474d67d4 | |||
| 0258f269ae | |||
| c912b32e5b | |||
| 1f7b9ae050 | |||
| de5ba3a760 | |||
| 52bc192a7f | |||
| f0092d065a | |||
| 05e2363ac9 | |||
| 08dc5b5744 | |||
| fffe99f997 |
12
README.md
Normal file
12
README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
## Build Results
|
||||||
|
|
||||||
|
Current state of openmpi5 in openSUSE:Factory is
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The current state of openmpi5 in the devel project build (science:HPC)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
<multibuild>
|
<multibuild>
|
||||||
<package>standard</package>
|
<package>standard</package>
|
||||||
<package>testsuite</package>
|
<package>testsuite</package>
|
||||||
<package>gnu-hpc</package>
|
|
||||||
<package>gnu-hpc-testsuite</package>
|
|
||||||
</multibuild>
|
</multibuild>
|
||||||
|
|||||||
17
_service
17
_service
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -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
BIN
openmpi-5.0.9.tar.bz2
LFS
Normal file
Binary file not shown.
200
openmpi5.changes
200
openmpi5.changes
@@ -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>
|
Mon Mar 25 07:40:50 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||||
|
|
||||||
|
|||||||
267
openmpi5.spec
267
openmpi5.spec
@@ -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
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
# University Research and Technology
|
# University Research and Technology
|
||||||
# Corporation. All rights reserved.
|
# Corporation. All rights reserved.
|
||||||
@@ -37,102 +37,55 @@
|
|||||||
%global flavor @BUILD_FLAVOR@%{nil}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
# Static libraries are disabled by default
|
# Static libraries are disabled by default
|
||||||
# for non HPC builds
|
|
||||||
# To enable them, simply uncomment:
|
# To enable them, simply uncomment:
|
||||||
# % define build_static_devel 1
|
# % define build_static_devel 1
|
||||||
|
|
||||||
%define pname openmpi
|
|
||||||
%define _vers 5_0_2
|
|
||||||
%define m_f_ver 5
|
|
||||||
%bcond_with ringdisabled
|
%bcond_with ringdisabled
|
||||||
|
|
||||||
%if "%flavor" == ""
|
%if "%flavor" == ""
|
||||||
ExclusiveArch: do_not_build
|
ExclusiveArch: do_not_build
|
||||||
%{bcond_with hpc}
|
%endif
|
||||||
%define package_name %pname%{m_f_ver}
|
|
||||||
%else
|
|
||||||
# Trickery for OBS Staging. If _with_ringdisabled is set
|
# Trickery for OBS Staging. If _with_ringdisabled is set
|
||||||
# we only want to build the flavors required by other rings packages.
|
# we only want to build the flavors required by other rings packages.
|
||||||
# Do not build any other ones
|
# Do not build any other ones
|
||||||
%if %{with ringdisabled}
|
%if %{with ringdisabled} && "%flavor" != "standard"
|
||||||
%if "%flavor" != "standard"
|
|
||||||
ExclusiveArch: do_not_build
|
ExclusiveArch: do_not_build
|
||||||
%endif
|
%endif
|
||||||
%endif
|
|
||||||
|
|
||||||
%if "%flavor" == "standard" || "%flavor" == "testsuite"
|
|
||||||
%define package_name %{pname}%{m_f_ver}
|
|
||||||
%bcond_with hpc
|
|
||||||
%if "%flavor" == "testsuite"
|
%if "%flavor" == "testsuite"
|
||||||
%define testsuite 1
|
%define testsuite 1
|
||||||
%endif
|
%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
|
|
||||||
%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
|
%ifarch aarch64 %power64 x86_64 s390x
|
||||||
%define with_ucx 1
|
%define with_ucx 1
|
||||||
%endif
|
%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
|
%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
|
%endif
|
||||||
|
|
||||||
%define git_ver .0.6db5e83b737a
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
#
|
#
|
||||||
# Preamble Section
|
# Preamble Section
|
||||||
#
|
#
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
Name: %{package_name}%{?testsuite:-testsuite}
|
Name: openmpi5%{?testsuite:-testsuite}
|
||||||
Version: 5.0.2
|
Version: 5.0.9
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: An implementation of MPI/SHMEM (Version %{m_f_ver})
|
Summary: An implementation of MPI/SHMEM (Version 5)
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Development/Libraries/Parallel
|
Group: Development/Libraries/Parallel
|
||||||
URL: http://www.open-mpi.org/
|
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
|
Source2: openmpi5-rpmlintrc
|
||||||
Source3: macros.hpc-openmpi
|
|
||||||
Source4: mpivars.sh
|
Source4: mpivars.sh
|
||||||
Source5: mpivars.csh
|
Source5: mpivars.csh
|
||||||
|
Source100: README.md
|
||||||
Patch1: romio341-backport-fixes-from-mpich.patch
|
Patch1: romio341-backport-fixes-from-mpich.patch
|
||||||
Provides: mpi
|
Provides: mpi
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
@@ -146,16 +99,13 @@ BuildRequires: hwloc-devel
|
|||||||
BuildRequires: libevent-devel
|
BuildRequires: libevent-devel
|
||||||
BuildRequires: libfabric-devel
|
BuildRequires: libfabric-devel
|
||||||
BuildRequires: libibumad-devel
|
BuildRequires: libibumad-devel
|
||||||
BuildRequires: libibverbs-devel
|
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
# net-tools is required to run hostname
|
# net-tools is required to run hostname
|
||||||
BuildRequires: net-tools
|
BuildRequires: net-tools
|
||||||
BuildRequires: python3
|
BuildRequires: python3
|
||||||
BuildRequires: python3-Sphinx >= 4.2.0
|
|
||||||
BuildRequires: python3-recommonmark
|
|
||||||
%if 0%{?testsuite}
|
%if 0%{?testsuite}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRequires: %{package_name} = %{version}
|
BuildRequires: openmpi5 = %{version}
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?with_ucx}
|
%if 0%{?with_ucx}
|
||||||
BuildRequires: libucm-devel
|
BuildRequires: libucm-devel
|
||||||
@@ -163,22 +113,14 @@ BuildRequires: libucp-devel
|
|||||||
BuildRequires: libucs-devel
|
BuildRequires: libucs-devel
|
||||||
BuildRequires: libuct-devel
|
BuildRequires: libuct-devel
|
||||||
%endif
|
%endif
|
||||||
%if %{without hpc}
|
|
||||||
BuildRequires: Modules
|
BuildRequires: Modules
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: gcc-fortran
|
BuildRequires: gcc-fortran
|
||||||
BuildRequires: mpi-selector
|
BuildRequires: mpi-selector
|
||||||
Requires: mpi-selector
|
Requires: mpi-selector
|
||||||
Requires(preun): mpi-selector
|
Requires(preun): mpi-selector
|
||||||
Requires: %{package_name}-libs = %{version}
|
%if !0%{?testsuite}
|
||||||
%else
|
Requires: %{name}-libs = %{version}
|
||||||
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
|
%endif
|
||||||
|
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
@@ -188,7 +130,7 @@ BuildRequires: numactl
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Requires: openmpi-runtime-config
|
Requires: openmpi-runtime-config
|
||||||
Recommends: openmpi%{m_f_ver}-config
|
Recommends: %{name}-config
|
||||||
%if 0%{?default_openmpi}
|
%if 0%{?default_openmpi}
|
||||||
Provides: openmpi = %{version}
|
Provides: openmpi = %{version}
|
||||||
%endif
|
%endif
|
||||||
@@ -196,26 +138,14 @@ Provides: openmpi = %{version}
|
|||||||
# Force ssh to make sure the install works out of the box
|
# Force ssh to make sure the install works out of the box
|
||||||
Requires: openssh
|
Requires: openssh
|
||||||
|
|
||||||
%if %{without hpc}
|
%define mpi_prefix %{_libdir}/mpi/gcc/%{name}
|
||||||
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi%{m_f_ver}
|
|
||||||
|
|
||||||
%define mpi_bindir %{mpi_prefix}/bin
|
%define mpi_bindir %{mpi_prefix}/bin
|
||||||
%define mpi_libdir %{mpi_prefix}/%{_lib}
|
%define mpi_libdir %{mpi_prefix}/%{_lib}
|
||||||
%define mpi_datadir %{mpi_prefix}/share
|
%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_includedir %{mpi_prefix}/include
|
||||||
%define mpi_mandir %{mpi_prefix}/share/man
|
%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
|
%description
|
||||||
%if 0%{?testsuite}
|
%if 0%{?testsuite}
|
||||||
@@ -235,20 +165,19 @@ one-sided communication techniques.
|
|||||||
|
|
||||||
This package provides general tools (mpirun, mpiexec, etc.) and the
|
This package provides general tools (mpirun, mpiexec, etc.) and the
|
||||||
Module Component Architecture (MCA) base and plugins necessary for
|
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
|
%endif
|
||||||
|
|
||||||
%if 0%{!?testsuite:1}
|
%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}
|
Summary: OpenMPI runtime libraries for OpenMPI %{?with_hpc:HPC} version %{version}
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
%if 0%{?default_openmpi}
|
%if 0%{?default_openmpi}
|
||||||
Provides: openmpi-libs = %{version}
|
Provides: openmpi-libs = %{version}
|
||||||
%endif
|
%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
|
OpenMPI is an implementation of the Message Passing Interface, a
|
||||||
standardized API typically used for parallel and/or distributed
|
standardized API typically used for parallel and/or distributed
|
||||||
computing. OpenMPI is the merged result of four prior implementations
|
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
|
abstraction layer providing inter-process communication using
|
||||||
one-sided communication techniques.
|
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.
|
shared libraries.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: SDK for openMPI %{?with_hpc:HPC} version %{version}
|
Summary: SDK for openMPI version %{version}
|
||||||
Group: Development/Libraries/Parallel
|
Group: Development/Libraries/Parallel
|
||||||
Requires: libibumad-devel
|
Requires: libibumad-devel
|
||||||
Requires: libibverbs-devel
|
|
||||||
%if %{without hpc}
|
|
||||||
Requires: libstdc++-devel
|
Requires: libstdc++-devel
|
||||||
%if 0%{?default_openmpi}
|
%if 0%{?default_openmpi}
|
||||||
Provides: openmpi-devel = %{version}
|
Provides: openmpi-devel = %{version}
|
||||||
%endif
|
%endif
|
||||||
%else
|
|
||||||
%hpc_requires_devel
|
|
||||||
%endif
|
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
@@ -291,11 +215,11 @@ abstraction layer providing inter-process communication using
|
|||||||
one-sided communication techniques.
|
one-sided communication techniques.
|
||||||
|
|
||||||
This package provides the development files for Open MPI/OpenSHMEM
|
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.
|
MPI/OpenSHMEM development.
|
||||||
|
|
||||||
%package docs
|
%package docs
|
||||||
Summary: Documentation for Open MPI/SHMEM %{?with_hpc:HPC} version %{version}
|
Summary: Documentation for Open MPI/SHMEM version %{version}
|
||||||
Group: Documentation/Man
|
Group: Documentation/Man
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
|
|
||||||
@@ -318,11 +242,11 @@ Summary: Macros for openMPI version %{version}
|
|||||||
Group: Development/Libraries/Parallel
|
Group: Development/Libraries/Parallel
|
||||||
Requires: %{name}-devel = %{version}
|
Requires: %{name}-devel = %{version}
|
||||||
# Make sure no two openmpi macro file can be installed at once
|
# Make sure no two openmpi macro file can be installed at once
|
||||||
Provides: %{pname}-macros-provider = %{version}
|
Provides: openmpi-macros-provider = %{version}
|
||||||
Conflicts: otherproviders(%{pname}-macros-provider)
|
Conflicts: otherproviders(openmpi-macros-provider)
|
||||||
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag
|
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag
|
||||||
# to avoid issue with older packages
|
# to avoid issue with older packages
|
||||||
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
|
Conflicts: otherproviders(openmpi-hpc-macros-devel)
|
||||||
|
|
||||||
%if 0%{?default_openmpi}
|
%if 0%{?default_openmpi}
|
||||||
Provides: openmpi-macros-devel = %{version}
|
Provides: openmpi-macros-devel = %{version}
|
||||||
@@ -333,7 +257,7 @@ Macros for building RPM packages for OpenMPI version %{version}.
|
|||||||
|
|
||||||
%if 0%{?build_static_devel}
|
%if 0%{?build_static_devel}
|
||||||
%package devel-static
|
%package devel-static
|
||||||
Summary: Static libraries for openMPI %{?with_hpc:HPC} version %{version}
|
Summary: Static libraries for openMPI version %{version}
|
||||||
Group: Development/Libraries/Parallel
|
Group: Development/Libraries/Parallel
|
||||||
Requires: %{name}-devel = %{version}
|
Requires: %{name}-devel = %{version}
|
||||||
%if 0%{?default_openmpi}
|
%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.
|
the dynamic library and headers.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{without hpc}
|
%package config
|
||||||
%package -n %{pname}%{m_f_ver}-config
|
Summary: Runtime configuration files for openMPI version %{version}
|
||||||
Summary: Runtime configuration files for openMPI %{?with_hpc:HPC} version %{version}
|
|
||||||
Group: Development/Libraries/Parallel
|
Group: Development/Libraries/Parallel
|
||||||
Provides: openmpi-runtime-config = %{version}
|
Provides: openmpi-runtime-config = %{version}
|
||||||
Conflicts: otherproviders(openmpi-runtime-config)
|
Conflicts: otherproviders(openmpi-runtime-config)
|
||||||
@@ -361,7 +284,7 @@ Conflicts: otherproviders(openmpi-runtime-config)
|
|||||||
Provides: pmix-runtime-config = %{version}
|
Provides: pmix-runtime-config = %{version}
|
||||||
Conflicts: otherproviders(pmix-runtime-config)
|
Conflicts: otherproviders(pmix-runtime-config)
|
||||||
|
|
||||||
%description -n %{pname}%{m_f_ver}-config
|
%description config
|
||||||
OpenMPI is an implementation of the Message Passing Interface, a
|
OpenMPI is an implementation of the Message Passing Interface, a
|
||||||
standardized API typically used for parallel and/or distributed
|
standardized API typically used for parallel and/or distributed
|
||||||
computing. OpenMPI is the merged result of four prior implementations
|
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.
|
such as latency or throughput.
|
||||||
|
|
||||||
This RPM contains the configuration files for OpenMPI runtime (Version 3).
|
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
|
%endif # !testsuite
|
||||||
|
|
||||||
# We do provide our own PMIx and should not create any requires/excludes
|
# We do provide our own PMIx and should not create any requires/excludes
|
||||||
%global __provides_exclude_from %{mpi_libdir}/libpmix.*.so
|
%global __provides_exclude_from %{mpi_libdir}/libpmix.*.so
|
||||||
%global __requires_exclude libpmix*
|
%global __requires_exclude libpmix*
|
||||||
|
|
||||||
%if "%(echo %version | tr '.' '_')" != "%_vers"
|
|
||||||
%{error: Fix _vers variable to match package version!}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
#
|
#
|
||||||
# Prepatory Section
|
# Prepatory Section
|
||||||
@@ -396,16 +306,10 @@ This RPM contains the configuration files for OpenMPI runtime (Version 3).
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
%prep
|
%prep
|
||||||
echo FLAVOR %{flavor}
|
echo FLAVOR %{flavor}
|
||||||
%if %{with hpc}
|
%autosetup -p0 -n openmpi-%{version}
|
||||||
echo with HPC
|
|
||||||
%endif
|
|
||||||
%if %{without hpc}
|
|
||||||
echo without HPC
|
|
||||||
%endif
|
|
||||||
%autosetup -p0 -n openmpi-%{version}%{git_ver}
|
|
||||||
|
|
||||||
# Live patch the VERSION file
|
# 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
|
-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 USER=OBS
|
||||||
export HOSTNAME=OBS
|
export HOSTNAME=OBS
|
||||||
# OBS sets SOURCE_DATE_EPOCH
|
# OBS sets SOURCE_DATE_EPOCH
|
||||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
# OpenPMIx does not support LTO:
|
||||||
%{?with_hpc:%hpc_debug}
|
# configure: WARNING: Configure has detected the presence of the -flto
|
||||||
# Remove .gitmodules so autogen.pl does not try to run git commands
|
# configure: WARNING: compiler directive in CFLAGS. PMIx does not currently
|
||||||
find . -name .gitmodules -delete
|
# 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
|
./autogen.pl --force --no-3rdparty libevent,hwloc
|
||||||
%if %{with hpc}
|
|
||||||
%{hpc_setup}
|
|
||||||
%{hpc_configure} \
|
|
||||||
%else
|
|
||||||
%{configure} \
|
%{configure} \
|
||||||
--prefix="%{mpi_prefix}" \
|
--prefix="%{mpi_prefix}" \
|
||||||
--exec-prefix="%{mpi_prefix}" \
|
--exec-prefix="%{mpi_prefix}" \
|
||||||
@@ -436,13 +339,12 @@ find . -name .gitmodules -delete
|
|||||||
--includedir="%{mpi_includedir}" \
|
--includedir="%{mpi_includedir}" \
|
||||||
--libdir="%{mpi_libdir}" \
|
--libdir="%{mpi_libdir}" \
|
||||||
--mandir="%{mpi_mandir}" \
|
--mandir="%{mpi_mandir}" \
|
||||||
%endif
|
|
||||||
--with-libevent=external \
|
--with-libevent=external \
|
||||||
--with-hwloc=external \
|
--with-hwloc=external \
|
||||||
%{?build_static_devel:--enable-static} \
|
%{?build_static_devel:--enable-static} \
|
||||||
%{!?build_static_devel:--disable-static} \
|
%{!?build_static_devel:--disable-static} \
|
||||||
--enable-builtin-atomics \
|
--enable-builtin-atomics \
|
||||||
--with-verbs \
|
--without-verbs \
|
||||||
--with-libfabric \
|
--with-libfabric \
|
||||||
%if 0%{?with_ucx}
|
%if 0%{?with_ucx}
|
||||||
--with-ucx \
|
--with-ucx \
|
||||||
@@ -450,6 +352,7 @@ find . -name .gitmodules -delete
|
|||||||
--enable-mpi-thread-multiple \
|
--enable-mpi-thread-multiple \
|
||||||
--disable-wrapper-rpath \
|
--disable-wrapper-rpath \
|
||||||
--with-slurm \
|
--with-slurm \
|
||||||
|
--with-sge \
|
||||||
%if 0%{?with_ucx}
|
%if 0%{?with_ucx}
|
||||||
--with-ucx \
|
--with-ucx \
|
||||||
--with-ucx-libdir=/usr/%_lib \
|
--with-ucx-libdir=/usr/%_lib \
|
||||||
@@ -483,7 +386,6 @@ make check
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%{?with_hpc:%{hpc_setup_compiler}}
|
|
||||||
make install DESTDIR="%buildroot"
|
make install DESTDIR="%buildroot"
|
||||||
|
|
||||||
# sanitize .la files
|
# sanitize .la files
|
||||||
@@ -516,7 +418,6 @@ rm -f %{buildroot}%{mpi_libdir}/mpi_ext.mod
|
|||||||
%fdupes %{buildroot}%{mpi_datadir}
|
%fdupes %{buildroot}%{mpi_datadir}
|
||||||
%fdupes %{buildroot}%{mpi_libdir}/pkgconfig
|
%fdupes %{buildroot}%{mpi_libdir}/pkgconfig
|
||||||
|
|
||||||
%if %{without hpc}
|
|
||||||
# make and install mpivars files
|
# make and install mpivars files
|
||||||
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \
|
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \
|
||||||
> %{buildroot}%{mpi_bindir}/mpivars.sh
|
> %{buildroot}%{mpi_bindir}/mpivars.sh
|
||||||
@@ -553,56 +454,7 @@ cat <<EOF >%{buildroot}%{_rpmmacrodir}/macros.openmpi
|
|||||||
%openmpi_devel_requires Requires: %{name}-devel
|
%openmpi_devel_requires Requires: %{name}-devel
|
||||||
|
|
||||||
EOF
|
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
|
%post
|
||||||
# Always register. We might be already registered in the case of an udate
|
# Always register. We might be already registered in the case of an udate
|
||||||
# but mpi-selector handles it fine
|
# but mpi-selector handles it fine
|
||||||
@@ -623,18 +475,10 @@ fi
|
|||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
%postun 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
|
%files
|
||||||
%defattr(-, root, root)
|
%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
|
%license LICENSE
|
||||||
%dir %{mpi_prefix}
|
%dir %{mpi_prefix}
|
||||||
%dir %{mpi_bindir}
|
%dir %{mpi_bindir}
|
||||||
@@ -643,20 +487,15 @@ fi
|
|||||||
%dir %{mpi_mandir}
|
%dir %{mpi_mandir}
|
||||||
%{mpi_bindir}/mpivars.csh
|
%{mpi_bindir}/mpivars.csh
|
||||||
%{mpi_bindir}/mpivars.sh
|
%{mpi_bindir}/mpivars.sh
|
||||||
|
|
||||||
%if %{without hpc}
|
|
||||||
%dir %{_libdir}/mpi
|
%dir %{_libdir}/mpi
|
||||||
%dir %{_libdir}/mpi/gcc
|
%dir %{_libdir}/mpi/gcc
|
||||||
%dir %{_datadir}/modules/gnu-openmpi
|
%dir %{_datadir}/modules/gnu-openmpi
|
||||||
%{_datadir}/modules/gnu-openmpi/%{version}
|
%{_datadir}/modules/gnu-openmpi/%{version}
|
||||||
%else # with hpc
|
|
||||||
%hpc_mpi_dirs
|
|
||||||
%hpc_modules_files
|
|
||||||
%endif # with hpc
|
|
||||||
#
|
#
|
||||||
%{mpi_bindir}/oshrun
|
%{mpi_bindir}/oshrun
|
||||||
%{mpi_bindir}/mpirun
|
%{mpi_bindir}/mpirun
|
||||||
%{mpi_bindir}/ompi_info
|
%{mpi_bindir}/ompi_info
|
||||||
|
%{mpi_bindir}/palloc
|
||||||
%{mpi_bindir}/pattrs
|
%{mpi_bindir}/pattrs
|
||||||
%{mpi_bindir}/pctrl
|
%{mpi_bindir}/pctrl
|
||||||
%{mpi_bindir}/pevent
|
%{mpi_bindir}/pevent
|
||||||
@@ -687,7 +526,7 @@ fi
|
|||||||
%{mpi_datadir}/prte/amca-param-sets/example.conf
|
%{mpi_datadir}/prte/amca-param-sets/example.conf
|
||||||
%{mpi_datadir}/prte/help-*.txt
|
%{mpi_datadir}/prte/help-*.txt
|
||||||
|
|
||||||
%files %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
|
%files libs
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%dir %mpi_prefix/
|
%dir %mpi_prefix/
|
||||||
%dir %mpi_libdir/
|
%dir %mpi_libdir/
|
||||||
@@ -707,10 +546,8 @@ fi
|
|||||||
%{mpi_libdir}/*.so
|
%{mpi_libdir}/*.so
|
||||||
%{mpi_libdir}/pkgconfig/*.pc
|
%{mpi_libdir}/pkgconfig/*.pc
|
||||||
%{mpi_libdir}/mpi.mod
|
%{mpi_libdir}/mpi.mod
|
||||||
%if 0%{?suse_version} >= 1320
|
|
||||||
%{mpi_libdir}/mpi_f08*.mod
|
%{mpi_libdir}/mpi_f08*.mod
|
||||||
%{mpi_libdir}/pmpi_f08*.mod
|
%{mpi_libdir}/pmpi_f08*.mod
|
||||||
%endif
|
|
||||||
%{mpi_bindir}/mpiCC
|
%{mpi_bindir}/mpiCC
|
||||||
%{mpi_bindir}/mpic++
|
%{mpi_bindir}/mpic++
|
||||||
%{mpi_bindir}/mpicc
|
%{mpi_bindir}/mpicc
|
||||||
@@ -743,11 +580,7 @@ fi
|
|||||||
|
|
||||||
%files macros-devel
|
%files macros-devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%if %{with hpc}
|
|
||||||
%{_rpmmacrodir}/macros.hpc-openmpi
|
|
||||||
%else
|
|
||||||
%{_rpmmacrodir}/macros.openmpi
|
%{_rpmmacrodir}/macros.openmpi
|
||||||
%endif
|
|
||||||
|
|
||||||
%if 0%{?build_static_devel}
|
%if 0%{?build_static_devel}
|
||||||
%files devel-static
|
%files devel-static
|
||||||
@@ -758,15 +591,13 @@ fi
|
|||||||
%{mpi_libdir}/openmpi/*.a
|
%{mpi_libdir}/openmpi/*.a
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{without hpc}
|
%files config
|
||||||
%files -n %{pname}%{m_f_ver}-config
|
|
||||||
%config %{_sysconfdir}/prte-default-hostfile
|
%config %{_sysconfdir}/prte-default-hostfile
|
||||||
%config %{_sysconfdir}/prte-mca-params.conf
|
%config %{_sysconfdir}/prte-mca-params.conf
|
||||||
%config %{_sysconfdir}/pmix-mca-params.conf
|
%config %{_sysconfdir}/pmix-mca-params.conf
|
||||||
%config %{_sysconfdir}/openmpi-mca-params.conf
|
%config %{_sysconfdir}/openmpi-mca-params.conf
|
||||||
%{_sysconfdir}/openmpi-totalview.tcl
|
%{_sysconfdir}/openmpi-totalview.tcl
|
||||||
%config %{_sysconfdir}/prte.conf
|
%config %{_sysconfdir}/prte.conf
|
||||||
%endif
|
|
||||||
|
|
||||||
%endif # !?testsuite
|
%endif # !?testsuite
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user