forked from pool/mvapich2
Accepting request 882120 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/882120 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mvapich2?expand=0&rev=26
This commit is contained in:
commit
ffe2f92f53
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a
|
||||
size 18473572
|
3
mvapich2-2.3.5.tar.gz
Normal file
3
mvapich2-2.3.5.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c
|
||||
size 20779884
|
@ -1,26 +0,0 @@
|
||||
commit 29cf7e8f54363de3ad614b3480517f02b84ade5e
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Thu May 2 09:56:40 2019 +0200
|
||||
|
||||
mvapich2 fix double free
|
||||
|
||||
Fix double free that causes a SEGV when mvapich2 fails to open
|
||||
a rdma device
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
index 89f666c8988b..48454297223c 100644
|
||||
--- src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
+++ src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
@@ -790,10 +790,6 @@ int rdma_open_hca(struct mv2_MPIDI_CH3I_RDMA_Process_t *proc)
|
||||
}
|
||||
|
||||
if (!ib_dev) {
|
||||
- /* Clean up before exit */
|
||||
- if (dev_list) {
|
||||
- ibv_free_device_list(dev_list);
|
||||
- }
|
||||
MPIR_ERR_SETFATALANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**fail",
|
||||
"**fail %s", "No IB device found");
|
||||
}
|
@ -1,3 +1,36 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 24 10:06:26 UTC 2021 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- Update mvapich2 to 2.3.5.
|
||||
* Enhanced performance for MPI_Allreduce and MPI_Barrier
|
||||
* Support collective offload using Mellanox's SHARP for Barrier
|
||||
- Enhanced tuning framework for Barrier using SHARP
|
||||
* Remove dependency on underlying libibverbs, libibmad, libibumad, and
|
||||
librdmacm libraries using dlopen
|
||||
* Add support for Broadcom NetXtreme RoCE HCA
|
||||
- Enhanced inter-node point-to-point support
|
||||
* Support architecture detection for Fujitsu A64fx processor
|
||||
* Enhanced point-to-point and collective tuning for Fujitsu A64fx processor
|
||||
* Enhanced point-to-point and collective tuning for AMD ROME processor
|
||||
* Add support for process placement aware HCA selection
|
||||
- Add "MV2_PROCESS_PLACEMENT_AWARE_HCA_MAPPING" environment variable to
|
||||
enable process placement aware HCA mapping
|
||||
* Add support to auto-detect RoCE HCAs and auto-detect GID index
|
||||
* Add support to use RoCE/Ethernet and InfiniBand HCAs at the same time
|
||||
* Add architecture-specific flags to improve performance of certain CUDA
|
||||
operations
|
||||
- Thanks to Chris Chambreau @LLNL for the report
|
||||
* Read MTU and maximum outstanding RDMA operations from the device
|
||||
* Improved performance and scalability for UD-based communication
|
||||
* Update maximum HCAs supported by default from 4 to 10
|
||||
* Enhanced collective tuning for Frontera@TACC, Expanse@SDSC,
|
||||
Ookami@StonyBrook, and bb5@EPFL
|
||||
* Enhanced support for SHARP v2.1.0
|
||||
* Generalize code for GPU support
|
||||
- Obsolete: wrapper-revert-ldflag-order-change.patch.
|
||||
- Replace: mvapich2-fix-double-free.patch by
|
||||
rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 18 04:46:04 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package %{package_name}
|
||||
# spec file for package mvapich2
|
||||
#
|
||||
# Copyright (c) 2021 SUSE LLC
|
||||
#
|
||||
@ -19,8 +19,8 @@
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
%define pname mvapich2
|
||||
%define vers 2.3.4
|
||||
%define _vers 2_3_4
|
||||
%define vers 2.3.5
|
||||
%define _vers 2_3_5
|
||||
|
||||
%if "%{flavor}" == ""
|
||||
ExclusiveArch: do_not_build
|
||||
@ -253,9 +253,8 @@ Patch2: mvapich2-arm-support.patch
|
||||
Patch3: 0001-Drop-GCC-check.patch
|
||||
Patch4: reproducible.patch
|
||||
Patch5: fix-missing-return-code.patch
|
||||
Patch6: wrapper-revert-ldflag-order-change.patch
|
||||
Patch7: mvapich2-fix-double-free.patch
|
||||
Patch8: mvapich2-remove-deprecated-sys_siglist.patch
|
||||
Patch6: mvapich2-remove-deprecated-sys_siglist.patch
|
||||
Patch7: rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
|
||||
|
||||
## Armv7 specific patches
|
||||
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
|
||||
@ -396,8 +395,7 @@ is based on MPICH2 and MVICH. This package contains the static libraries
|
||||
%patch4 -p1
|
||||
%patch5
|
||||
%patch6
|
||||
%patch7
|
||||
%patch8
|
||||
%patch7 -p1
|
||||
|
||||
# Only apply these patches on Armv7
|
||||
%ifarch armv7hl
|
||||
|
@ -0,0 +1,27 @@
|
||||
From: Egbert Eich <eich@suse.com>
|
||||
Date: Wed Mar 24 17:59:11 2021 +0100
|
||||
Subject: rdma_find_network_type(): return MV2_NETWORK_CLASS_UNKNOWN when dev_list is freed
|
||||
Patch-mainline: Not yet
|
||||
Git-commit: 53c0c41fbd3728afb32cce7f23f596877e270911
|
||||
References:
|
||||
|
||||
This makes rdma_open_hca() bail early, so it doesn't reach the
|
||||
code which tries to free dev_list and avoids a double free.
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
---
|
||||
src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
diff --git a/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c b/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
index 9eb565e..4795035 100644
|
||||
--- a/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
+++ b/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
||||
@@ -507,7 +507,7 @@ int rdma_find_network_type(struct ibv_device **dev_list, int num_devices,
|
||||
if (dev_list[i]) {
|
||||
ibv_ops.free_device_list(dev_list);
|
||||
}
|
||||
- return 0;
|
||||
+ return network_type;
|
||||
}
|
||||
if (ERROR == rdma_find_active_port(nic_context[i], NULL, &hca_rate)) {
|
||||
/* No active port, skip HCA */
|
@ -1,115 +0,0 @@
|
||||
commit 5818871a4afed52944ece7688f5ad316407be482
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Tue Jun 9 22:46:54 2020 +0200
|
||||
|
||||
wrapper revert ldflag order change
|
||||
|
||||
For some reason v2.3.4 changed flag order in mpi** wrappers which
|
||||
causes legacy stuff to not link unless a -lmpi is added
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git src/env/mpicc.bash.in src/env/mpicc.bash.in
|
||||
index aa65f27a4e5e..21517c0abfef 100644
|
||||
--- src/env/mpicc.bash.in
|
||||
+++ src/env/mpicc.bash.in
|
||||
@@ -268,7 +268,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
+ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpicc.sh.in src/env/mpicc.sh.in
|
||||
index dceab90cc3f2..f6e433d2f0f5 100644
|
||||
--- src/env/mpicc.sh.in
|
||||
+++ src/env/mpicc.sh.in
|
||||
@@ -277,7 +277,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
+ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpicxx.bash.in src/env/mpicxx.bash.in
|
||||
index 5d4e1639e02f..35a581bd3515 100644
|
||||
--- src/env/mpicxx.bash.in
|
||||
+++ src/env/mpicxx.bash.in
|
||||
@@ -266,7 +266,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
+ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpicxx.sh.in src/env/mpicxx.sh.in
|
||||
index 0186905368e1..e2eed50f0660 100644
|
||||
--- src/env/mpicxx.sh.in
|
||||
+++ src/env/mpicxx.sh.in
|
||||
@@ -275,7 +275,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
+ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpif77.bash.in src/env/mpif77.bash.in
|
||||
index 05b3e540de78..4d357a502d94 100644
|
||||
--- src/env/mpif77.bash.in
|
||||
+++ src/env/mpif77.bash.in
|
||||
@@ -318,7 +318,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
|
||||
+ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpif77.sh.in src/env/mpif77.sh.in
|
||||
index 070b0be24722..0ec77e627b53 100644
|
||||
--- src/env/mpif77.sh.in
|
||||
+++ src/env/mpif77.sh.in
|
||||
@@ -340,7 +340,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir
|
||||
rc=$?
|
||||
else
|
||||
- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
|
||||
+ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpifort.bash.in src/env/mpifort.bash.in
|
||||
index 73da0e866e48..c36dddf78553 100644
|
||||
--- src/env/mpifort.bash.in
|
||||
+++ src/env/mpifort.bash.in
|
||||
@@ -359,7 +359,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}"
|
||||
rc=$?
|
||||
else
|
||||
- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
|
||||
+ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
|
||||
rc=$?
|
||||
fi
|
||||
else
|
||||
diff --git src/env/mpifort.sh.in src/env/mpifort.sh.in
|
||||
index 5ee8a148f8ff..c5620c4b61a2 100644
|
||||
--- src/env/mpifort.sh.in
|
||||
+++ src/env/mpifort.sh.in
|
||||
@@ -375,7 +375,7 @@ if [ "$linking" = yes ] ; then
|
||||
$Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs
|
||||
rc=$?
|
||||
else
|
||||
- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
|
||||
+ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
|
||||
rc=$?
|
||||
fi
|
||||
else
|
Loading…
Reference in New Issue
Block a user