SHA256
1
0
forked from pool/mpich

5 Commits

Author SHA256 Message Date
0de26d06e3 Accepting request 1265556 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/1265556
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=36
2025-04-03 14:46:44 +00:00
ed256dcfb4 - Remove support for gnu-hpc build flavours
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=79
2025-03-30 15:33:43 +00:00
676e345393 - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=78
2025-03-24 16:00:26 +00:00
b2677afd16 Accepting request 1247233 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247233
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=35
2025-02-20 15:40:16 +00:00
751f748c71 - Update to 4.3.0
- Support MPI memory allocation kinds side document.
  - Support MPI ABI Proposal. Configure with --enable-mpi-abi and build with
    mpicc_abi. By default, mpicc still builds and links with MPICH ABI.
  - Added benchmark tests test/mpi/bench/p2p_{latency,bw}. 
  - Added CMA support in CH4 IPC.
  - Added IPC read algorithm for intranode Allgather and Allgatherv.
  - Added CVAR MPIR_CVAR_CH4_SHM_POSIX_TOPO_ENABLE to enable non-temporal memcpy
    for inter-numa shm communication.
  - Added CVAR MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT for debugging MPI deadlock issues.  
  - ch4:ucx now supports dynamic processes. MPI_Comm_spawn{_multiple} will work.
    MPI_Open_port will fail due to ucx port name exceeds current MPI_MAX_PORT_NAME
    of 256. One can work around by use an info hint "port_name_size" and use a
    larger port name buffer.
  - PMI-1 defines PMI_MAX_PORT_NAME, which may be different from MPI_MAX_PORT_NAME.
    This is used by "PMI_Lookup_name". Consequently, MPI_Lookup_name accepts info
    hint "port_name_size" that may be larger than MPI_MAX_PORT_NAME. If the port
    name does not fit in "port_name_size", it will return a truncation error.
  - Autogen default to use -yaksa-depth=2.
  - Default MPIR_CVAR_CH4_ROOTS_ONLY_PMI to on.
  - Added ch4 netmod API am_tag_send and am_tag_recv.
  - Added MPIR_CVAR_CH4_OFI_EAGER_THRESHOLD to force RNDV send mode.
  - Make check target will run ROMIO tests.
  - Add back handle conversion macros (f2c/c2f) to preserve ABI
    compatibility with older MPICH libraries
  - Fix compilation issue with g++ in -std=gnu++20 mode
  - Fix bug in MPI_ANY_SOURCE handling observed using the libfabric CXI
    provider
  - Add NIC information to error messages in ch4:ofi netmod
- Add romio-disable-tests.patch to disable romio tests

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=76
2025-02-19 20:17:01 +00:00
7 changed files with 82 additions and 315 deletions

View File

@@ -3,8 +3,4 @@
<package>testsuite</package>
<package>ofi</package>
<package>ofi-testsuite</package>
<package>gnu-hpc</package>
<package>gnu-hpc-testsuite</package>
<package>gnu-hpc-ofi</package>
<package>gnu-hpc-ofi-testsuite</package>
</multibuild>

View File

@@ -1,20 +0,0 @@
#
# mpich
#
%hpc_mpich_init(V:) \
%{-V: %define _mf_ver %{-V*}} \
%{expand: %%global hpc_mpich_dep_version %%{?_mf_ver}} \
%{expand: %%global hpc_mpich_dir mpich%{hpc_mpich_dep_version}} \
%global hpc_mpich_pack_version %{hpc_mpich_dep_version} \
%{expand: %%global _hpc_mpich_modules mpich}
# We may have to add a version here.
%hpc_setup_mpich \
module load mpich
%hpc_mpich_requires \
Requires: mpich%{hpc_mpich_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
%hpc_mpich_requires_devel \
Requires: mpich%{hpc_mpich_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:883f5bb3aeabf627cb8492ca02a03b191d09836bbe0f599d8508351179781d41
size 40241352

BIN
mpich-4.3.0.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,48 @@
-------------------------------------------------------------------
Sat Mar 29 14:25:11 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove support for gnu-hpc build flavours
-------------------------------------------------------------------
Mon Mar 24 12:49:48 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Wed Feb 19 15:24:58 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.3.0
- Support MPI memory allocation kinds side document.
- Support MPI ABI Proposal. Configure with --enable-mpi-abi and build with
mpicc_abi. By default, mpicc still builds and links with MPICH ABI.
- Added benchmark tests test/mpi/bench/p2p_{latency,bw}.
- Added CMA support in CH4 IPC.
- Added IPC read algorithm for intranode Allgather and Allgatherv.
- Added CVAR MPIR_CVAR_CH4_SHM_POSIX_TOPO_ENABLE to enable non-temporal memcpy
for inter-numa shm communication.
- Added CVAR MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT for debugging MPI deadlock issues.
- ch4:ucx now supports dynamic processes. MPI_Comm_spawn{_multiple} will work.
MPI_Open_port will fail due to ucx port name exceeds current MPI_MAX_PORT_NAME
of 256. One can work around by use an info hint "port_name_size" and use a
larger port name buffer.
- PMI-1 defines PMI_MAX_PORT_NAME, which may be different from MPI_MAX_PORT_NAME.
This is used by "PMI_Lookup_name". Consequently, MPI_Lookup_name accepts info
hint "port_name_size" that may be larger than MPI_MAX_PORT_NAME. If the port
name does not fit in "port_name_size", it will return a truncation error.
- Autogen default to use -yaksa-depth=2.
- Default MPIR_CVAR_CH4_ROOTS_ONLY_PMI to on.
- Added ch4 netmod API am_tag_send and am_tag_recv.
- Added MPIR_CVAR_CH4_OFI_EAGER_THRESHOLD to force RNDV send mode.
- Make check target will run ROMIO tests.
- Add back handle conversion macros (f2c/c2f) to preserve ABI
compatibility with older MPICH libraries
- Fix compilation issue with g++ in -std=gnu++20 mode
- Fix bug in MPI_ANY_SOURCE handling observed using the libfabric CXI
provider
- Add NIC information to error messages in ch4:ofi netmod
- Add romio-disable-tests.patch to disable romio tests
as they cannot be ran within %check
-------------------------------------------------------------------
Mon Aug 12 10:30:53 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package mpich
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,185 +24,25 @@
# % define build_static_devel 1
%define pname mpich
%define vers 4.2.2
%define _vers 4_2_2
%if "%{flavor}" == ""
ExclusiveArch: do_not_build
%{bcond_with hpc}
%endif
%if "%{flavor}" == "standard"
%define build_flavor ucx
%{bcond_with hpc}
%endif
%if "%{flavor}" == "testsuite"
%define build_flavor ucx
%define testsuite 1
%{bcond_with hpc}
%endif
%if "%{flavor}" == "ofi"
%define build_flavor ofi
%{bcond_with hpc}
%endif
%if "%{flavor}" == "ofi-testsuite"
%define build_flavor ofi
%define testsuite 1
%{bcond_with hpc}
%endif
%if "%flavor" == "gnu-hpc"
%define compiler_family gnu
%undefine c_f_ver
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-ofi"
%define compiler_family gnu
%undefine c_f_ver
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-ofi-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc"
%define compiler_family gnu
%define c_f_ver 7
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 7
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc"
%define compiler_family gnu
%define c_f_ver 8
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 8
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 8
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 8
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc"
%define compiler_family gnu
%define c_f_ver 9
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 9
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 9
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 9
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc"
%define compiler_family gnu
%define c_f_ver 10
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 10
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 10
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 10
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%{build_flavor}" != "ucx"
@@ -217,7 +57,6 @@ ExclusiveArch: do_not_build
%endif
%endif
%if %{without hpc}
%define module_name mpich%{?pack_suff}
%define p_prefix /usr/%_lib/mpi/gcc/%{module_name}
%define p_bindir %{p_prefix}/bin
@@ -228,37 +67,21 @@ ExclusiveArch: do_not_build
%define p_libexecdir %{p_prefix}/%{_lib}
%define _moduledir /usr/share/modules/gnu-%{module_name}
%define package_name %{pname}%{?pack_suff}
%else
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m mpich %{?pack_suff:-e %{build_flavor}} %{?mpi_f_ver:-V %{mpi_f_ver}}}
%define p_prefix %{hpc_prefix}
%define p_bindir %{hpc_bindir}
%define p_datadir %{hpc_datadir}
%define p_includedir %{hpc_includedir}
%define p_mandir %{hpc_mandir}
%define p_libdir %{hpc_libdir}
%define p_libexecdir %{hpc_libexecdir}
%define package_name %{pname}%{?pack_suff}_%{_vers}-%{compiler_family}%{?c_f_ver}-hpc
%global hpc_mpich_dep_version %(VER=%{?m_f_ver}; echo -n ${VER})
%global hpc_mpich_dir mpich
%global hpc_mpich_pack_version %{hpc_mpich_dep_version}
ExcludeArch: i586 %arm s390
%endif
Name: %{package_name}%{?testsuite:-testsuite}
Version: %{vers}
Version: 4.3.0
Release: 0
Summary: High-performance and widely portable implementation of MPI
License: MIT
Group: Development/Libraries/Parallel
URL: http://www.mpich.org/
Source0: http://www.mpich.org/static/downloads/%{version}/mpich-%{vers}.tar.gz
Source0: http://www.mpich.org/static/downloads/%{version}/mpich-%{version}.tar.gz
Source1: mpivars.sh
Source2: mpivars.csh
Source3: macros.hpc-mpich
Source100: _multibuild
Patch1: autogen-only-deal-with-json-yaksa-if-enabled.patch
Patch2: autoconf-pull-dynamic-and-not-static-libs-from-pkg-config.patch
Patch3: romio-disable-tests.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
@@ -291,19 +114,12 @@ ExcludeArch: %ix86 %arm
%endif
Provides: mpi
%if %{without hpc}
BuildRequires: Modules
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: mpi-selector
Requires: mpi-selector
Requires(preun):mpi-selector
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: lua-lmod
BuildRequires: suse-hpc
%hpc_requires
%endif
Requires(preun): mpi-selector
%if 0%{?testsuite}
BuildRequires: %package_name = %{version}
@@ -326,15 +142,11 @@ The goals of MPICH are:
%if 0%{!?testsuite:1}
%package devel
Summary: SDK for MPICH %{?with_hpc:HPC} version %{version}
Summary: SDK for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
%if %{without hpc}
Requires: libstdc++-devel
%else
%hpc_requires_devel
%endif
Requires: %{name} = %{version}
Requires: libstdc++-devel
%description devel
MPICH is a freely available, portable implementation of MPI, the
@@ -344,21 +156,9 @@ headers and libraries needed for developing MPI applications.
This RPM contains all the wrappers necessary to compile, link, and run
Open MPI jobs.
%if %{with hpc}
%package macros-devel
Summary: HPC Macros for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
Provides: %{pname}-hpc-macros-devel = %{version}
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
%description macros-devel
HPC Macros for building RPM packages for MPICH version %{version}.
%endif
%if 0%{?build_static_devel}
%package devel-static
Summary: Static libraries for MPICH %{?with_hpc:HPC} version %{version}
Summary: Static libraries for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
@@ -371,23 +171,10 @@ This RPM contains the static library files, which are packaged separately from
the dynamic library and headers.
%endif
%if %{with hpc}
%{hpc_master_package -L -a}
%{hpc_master_package -a devel}
%{hpc_master_package macros-devel}
%{hpc_master_package -a devel-static}
%endif # ?with_hpc
%endif # ! testsuite
%prep
echo FLAVOR %{flavor}
%if %{with hpc}
echo with HPC
%endif
%if %{without hpc}
echo without HPC
%endif
%autosetup -p0 -n mpich-%{version}%{?rc_ver}
# Make sure prebuilt dependencies are used and not mpich submodules
@@ -397,17 +184,12 @@ rm -R modules/{ucx,libfabric,json-c}
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
# GCC10 needs an extra flag to allow badly passed parameters
%if 0%{?suse_version} > 1500 || 0%{?hpc_gnu_dep_version} >= 10
%if 0%{?suse_version} > 1500
export FFLAGS="-fallow-argument-mismatch $FFLAGS"
export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
%endif
./autogen.sh --without-ucx --without-ofi --without-json
%{?with_hpc:%hpc_debug}
%if %{with hpc}
%{hpc_setup}
%{hpc_configure} \
%else
%configure \
--prefix=%{p_prefix} \
--exec-prefix=%{p_prefix} \
@@ -417,7 +199,6 @@ export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
--libdir=%{p_libdir} \
--libexecdir=%{p_libexecdir} \
--mandir=%{p_mandir} \
%endif
--docdir=%{_datadir}/doc/%{name} \
--disable-rpath \
--disable-wrapper-rpath \
@@ -477,7 +258,6 @@ make check
%else
%if %{without hpc}
# make and install mpivars files
install -m 0755 -d %{buildroot}%{_bindir}
sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:1} > %{buildroot}%{p_bindir}/mpivars.sh
@@ -507,47 +287,6 @@ cat << EOF > %{buildroot}%{_moduledir}/.version
set ModulesVersion "%{version}"
EOF
%else # with hpc
install -d -m 755 %{buildroot}%{_rpmmacrodir}
cp %{S:3} %{buildroot}%{_rpmmacrodir}
%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}
prepend-path PATH %{hpc_bindir}
prepend-path MANPATH %{hpc_mandir}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
prepend-path MODULEPATH %{hpc_modulepath}
prepend-path MPI_DIR %{hpc_prefix}
%{hpc_modulefile_add_pkgconfig_path}
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{p_bindir}/mpivars.sh
%hpc_setup_compiler
module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
sed -e "s/export/setenv/" -e "s/=/ /" \
%{buildroot}/%{p_bindir}/mpivars.sh > \
%{buildroot}/%{p_bindir}/mpivars.csh
mkdir -p %{buildroot}%{_sysconfdir}/rpm
%endif # with hpc
find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
@@ -555,18 +294,15 @@ find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
%post
/sbin/ldconfig
%if %{without hpc}
# Always register. We might be already registered in the case of an udate
# but mpi-selector handles it fine
/usr/bin/mpi-selector \
--register %{name}%{?pack_suff} \
--source-dir %{p_bindir} \
--yes
%endif
%postun
/sbin/ldconfig
%if %{without hpc}
# Only unregister when uninstalling
if [ "$1" = "0" ]; then
/usr/bin/mpi-selector --unregister %{name}%{?pack_suff} --yes
@@ -575,23 +311,15 @@ if [ "$1" = "0" ]; then
/usr/bin/mpi-selector --system --unset --yes
fi
fi
%else
%hpc_module_delete_if_default
%endif
%files
%defattr(-,root,root)
%doc CHANGES COPYRIGHT README README.envvar RELEASE_NOTES
%if %{without hpc}
%dir /usr/%_lib/mpi
%dir /usr/%_lib/mpi/gcc
%dir /usr/share/modules
%dir %{_moduledir}
%{_moduledir}
%else
%hpc_mpi_dirs
%hpc_modules_files
%endif
%doc %{_datadir}/doc/*
%dir %{p_prefix}
%dir %{p_bindir}
@@ -619,12 +347,6 @@ fi
%{p_libdir}/*.a
%endif
%if %{with hpc}
%files macros-devel
%defattr(-,root,root)
%config %{_rpmmacrodir}/macros.hpc-mpich
%endif # with hpc
%endif # !testsuite
%changelog

24
romio-disable-tests.patch Normal file
View File

@@ -0,0 +1,24 @@
commit 064abd16295dd402a436d9e9e3a1ad887c6fafb6
Author: Nicolas Morey <nmorey@suse.com>
Date: Wed Feb 19 19:45:08 2025 +0100
romio: disable tests
Tests assumes mpich to be fully installed which does not work
for %check
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git src/mpi/romio/Makefile.am src/mpi/romio/Makefile.am
index a6429766fd47..eb9ccd4f2f81 100644
--- src/mpi/romio/Makefile.am
+++ src/mpi/romio/Makefile.am
@@ -56,7 +56,7 @@ nodist_include_HEADERS += include/mpio.h include/mpiof.h
# ------------------------------------------------------------------------
-SUBDIRS = $(external_subdirs) . test
+SUBDIRS = $(external_subdirs) .
DIST_SUBDIRS = test test-internal $(external_dist_subdirs)
# for the sake of parallel make and avoiding an excessive number of convenience