From 2e5b37a4533122d8011881d3dbf60aff27029214daffa605da16f4f832d0bde7 Mon Sep 17 00:00:00 2001 From: Nicolas Morey Date: Fri, 4 Aug 2023 19:20:12 +0000 Subject: [PATCH] Accepting request 1102426 from home:NMorey:branches:science:HPC - Tune multibuild flavours to match the new ch4 targets OBS-URL: https://build.opensuse.org/request/show/1102426 OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich3?expand=0&rev=2 --- _multibuild | 3 + mvapich3.changes | 5 ++ mvapich3.spec | 175 ++++++++++++++++++++++------------------------- 3 files changed, 88 insertions(+), 95 deletions(-) diff --git a/_multibuild b/_multibuild index 825bf2e..5295285 100644 --- a/_multibuild +++ b/_multibuild @@ -1,6 +1,9 @@ standard testsuite + ofi + ofi-testsuite gnu-hpc gnu-hpc-testsuite + gnu-hpc-ofi-testsuite diff --git a/mvapich3.changes b/mvapich3.changes index 3a482cf..5594043 100644 --- a/mvapich3.changes +++ b/mvapich3.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jul 26 13:27:31 UTC 2023 - Nicolas Morey + +- Tune multibuild flavours to match the new ch4 targets + ------------------------------------------------------------------- Sun Jul 23 09:25:21 UTC 2023 - Klaus Kämpf diff --git a/mvapich3.spec b/mvapich3.spec index c19163e..ff9eb53 100644 --- a/mvapich3.spec +++ b/mvapich3.spec @@ -29,31 +29,21 @@ ExclusiveArch: do_not_build %endif %if "%{flavor}" == "standard" -%define build_flavor verbs +%define build_flavor ucx %{bcond_with hpc} %endif %if "%{flavor}" == "testsuite" -%define build_flavor verbs +%define build_flavor ucx %define testsuite 1 %{bcond_with hpc} %endif -%if "%{flavor}" == "psm" -%define build_flavor psm +%if "%{flavor}" == "ofi" +%define build_flavor ofi %{bcond_with hpc} %endif -%if "%{flavor}" == "psm-testsuite" -%define build_flavor psm -%define testsuite 1 -%{bcond_with hpc} -%endif - -%if "%{flavor}" == "psm2" -%define build_flavor psm2 -%{bcond_with hpc} -%endif -%if "%{flavor}" == "psm2-testsuite" -%define build_flavor psm2 +%if "%{flavor}" == "ofi-testsuite" +%define build_flavor ofi %define testsuite 1 %{bcond_with hpc} %endif @@ -61,144 +51,150 @@ ExclusiveArch: do_not_build %if "%flavor" == "gnu-hpc" %define compiler_family gnu %undefine c_f_ver -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif %if "%flavor" == "gnu-hpc-testsuite" %define compiler_family gnu %undefine c_f_ver %define testsuite 1 -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif -%if "%flavor" == "gnu-hpc-psm" +%if "%flavor" == "gnu-hpc-ofi" %define compiler_family gnu %undefine c_f_ver -%define build_flavor psm +%define build_flavor ofi +%define build_static_devel 1 %{bcond_without hpc} %endif - -%if "%flavor" == "gnu-hpc-psm2" +%if "%flavor" == "gnu-hpc-ofi-testsuite" %define compiler_family gnu %undefine c_f_ver -%define build_flavor psm2 +%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 verbs +%define build_flavor ucx %{bcond_without hpc} %endif %if "%flavor" == "gnu7-hpc-testsuite" %define compiler_family gnu %define c_f_ver 7 %define testsuite 1 -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif -%if "%flavor" == "gnu7-hpc-psm" +%if "%flavor" == "gnu7-hpc-ofi" %define compiler_family gnu %define c_f_ver 7 -%define build_flavor psm +%define build_flavor ofi +%define build_static_devel 1 %{bcond_without hpc} %endif - -%if "%flavor" == "gnu7-hpc-psm2" +%if "%flavor" == "gnu7-hpc-ofi-testsuite" %define compiler_family gnu %define c_f_ver 7 -%define build_flavor psm2 +%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 verbs +%define build_flavor ucx %{bcond_without hpc} %endif %if "%flavor" == "gnu8-hpc-testsuite" %define compiler_family gnu %define c_f_ver 8 %define testsuite 1 -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif -%if "%flavor" == "gnu8-hpc-psm" +%if "%flavor" == "gnu8-hpc-ofi" %define compiler_family gnu %define c_f_ver 8 -%define build_flavor psm +%define build_flavor ofi +%define build_static_devel 1 %{bcond_without hpc} %endif -%if "%flavor" == "gnu8-hpc-psm2" +%if "%flavor" == "gnu8-hpc-ofi-testsuite" %define compiler_family gnu %define c_f_ver 8 -%define build_flavor psm2 +%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 verbs +%define build_flavor ucx %{bcond_without hpc} %endif %if "%flavor" == "gnu9-hpc-testsuite" %define compiler_family gnu %define c_f_ver 9 %define testsuite 1 -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif -%if "%flavor" == "gnu9-hpc-psm" +%if "%flavor" == "gnu9-hpc-ofi" %define compiler_family gnu %define c_f_ver 9 -%define build_flavor psm +%define build_flavor ofi +%define build_static_devel 1 %{bcond_without hpc} %endif - -%if "%flavor" == "gnu9-hpc-psm2" +%if "%flavor" == "gnu9-hpc-ofi-testsuite" %define compiler_family gnu %define c_f_ver 9 -%define build_flavor psm2 +%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 verbs +%define build_flavor ucx %{bcond_without hpc} %endif %if "%flavor" == "gnu10-hpc-testsuite" %define compiler_family gnu %define c_f_ver 10 %define testsuite 1 -%define build_flavor verbs +%define build_flavor ucx %{bcond_without hpc} %endif -%if "%flavor" == "gnu10-hpc-psm" +%if "%flavor" == "gnu10-hpc-ofi" %define compiler_family gnu %define c_f_ver 10 -%define build_flavor psm +%define build_flavor ofi +%define build_static_devel 1 %{bcond_without hpc} %endif - -%if "%flavor" == "gnu10-hpc-psm2" +%if "%flavor" == "gnu10-hpc-ofi-testsuite" %define compiler_family gnu %define c_f_ver 10 -%define build_flavor psm2 +%define testsuite 1 +%define build_flavor ofi %{bcond_without hpc} %endif -%if "%{build_flavor}" != "verbs" +%if "%{build_flavor}" != "ucx" %define pack_suff %{?build_flavor:-%{build_flavor}} %endif @@ -252,7 +248,6 @@ Source2: mpivars.csh Source3: macros.hpc-mvapich3 Source100: _multibuild Patch1: 0001-fix-control-reaches-end-of-non-void-function.patch - URL: http://mvapich.cse.ohio-state.edu BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -265,14 +260,12 @@ BuildRequires: automake BuildRequires: bison BuildRequires: flex BuildRequires: hwloc-devel >= 2.0 -BuildRequires: libibverbs %ifnarch s390 s390x %{arm} BuildRequires: libnuma-devel %endif BuildRequires: libnl3-devel BuildRequires: libtool BuildRequires: libuuid-devel -BuildRequires: rdma-core-devel BuildRequires: sysfsutils %if %{without hpc} BuildRequires: gcc-c++ @@ -289,25 +282,30 @@ BuildRequires: hwloc-devel %if %{with pmix} BuildRequires: pmix-devel %endif -#%if "%{build_flavor}" == "psm" && %{with skip_hpc_build} -ExclusiveArch: %ix86 x86_64 +%if "%{build_flavor}" == "ofi" +BuildRequires: libfabric-devel +%ifarch x86_64 %{ix86} BuildRequires: infinipath-psm-devel -#%endif -#%if "%{build_flavor}" == "psm2" && %{with skip_hpc_build} -ExclusiveArch: x86_64 +%endif +%ifarch x86_64 BuildRequires: libpsm2-devel -#%endif -%if "%{build_flavor}" == "verbs" -BuildRequires: infiniband-diags-devel -BuildRequires: libibumad-devel +%endif BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel -%if 0%{?sle_version} <= 120200 -BuildRequires: libibmad-devel -%endif %endif -BuildRequires: libfabric-devel +%if "%{build_flavor}" == "ucx" +BuildRequires: libucm-devel >= 1.7.0 +BuildRequires: libucp-devel >= 1.7.0 +BuildRequires: libucs-devel >= 1.7.0 +BuildRequires: libuct-devel >= 1.7.0 +# UCX is only available for 64b archs +ExcludeArch: %ix86 %arm +%endif + +# Temporary: armv7 is broken due to Fortran Float issues +ExcludeArch: %arm + BuildRequires: python3 %if %{without hpc} @@ -328,16 +326,14 @@ is based on MPICH2 and MVICH. Summary: OSU MVAPICH3 MPI package Group: Development/Libraries/Parallel Requires: %{name} = %{version} -%if "%{build_flavor}" == "psm" -Requires: infinipath-psm-devel +%if "%{build_flavor}" == "ofi" +Requires: libfabric-devel %endif -%if "%{build_flavor}" == "psm2" -Requires: libpsm2-devel -%endif -%if "%{build_flavor}" == "verbs" -Requires: libibumad-devel -Requires: libibverbs-devel -Requires: librdmacm-devel +%if "%{build_flavor}" == "ucx" +Requires: libucm-devel >= 1.7.0 +Requires: libucp-devel >= 1.7.0 +Requires: libucs-devel >= 1.7.0 +Requires: libuct-devel >= 1.7.0 %endif %if %{without hpc} Requires: gcc-c++ @@ -425,21 +421,18 @@ export FFLAGS="-fallow-argument-mismatch $FFLAGS" --disable-wrapper-rpath \ --enable-yield=sched_yield \ %if %{with hwloc} - --with-hwloc=external \ + --with-hwloc-prefix=%{_prefix} \ %endif %if %{with pmix} --with-pmix=${_prefix} \ %endif -%if "%{build_flavor}" == "psm" - --with-device=ch3:psm \ - --with-psm=/usr \ +%if "%{build_flavor}" == "ofi" + --with-ofi \ + --with-device=ch4:ofi \ %endif -%if "%{build_flavor}" == "psm2" - --with-device=ch3:psm \ - --with-psm2=/usr \ -%endif -%if "%{build_flavor}" == "verbs" - --disable-ibv-dlopen \ +%if "%{build_flavor}" == "ucx" + --with-ucx \ + --with-device=ch4:ucx \ %endif --without-mpe make %{?_smp_mflags} V=1 @@ -607,18 +600,10 @@ fi %files devel %defattr(-,root,root) -%dir %{p_libdir}/pkgconfig +%{p_libdir}/pkgconfig %{p_mandir}/man3/* %{p_includedir} %{p_libdir}/*.so -%if "%flavor" == "gnu-hpc" -# wtf ?! -/usr/lib/hpc/gnu13/mpi/mvapich3/3.0b/lib64/pkgconfig/mvapich.pc -/usr/lib/hpc/gnu13/mpi/mvapich3/3.0b/lib64/pkgconfig/yaksa.pc -%else -%{_libdir}/mpi/gcc/mvapich3/lib64/pkgconfig/mvapich.pc -%{_libdir}/mpi/gcc/mvapich3/lib64/pkgconfig/yaksa.pc -%endif %files devel-static %defattr(-,root,root)