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>
|
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
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
@ -19,8 +19,8 @@
|
|||||||
%global flavor @BUILD_FLAVOR@%{nil}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
%define pname mvapich2
|
%define pname mvapich2
|
||||||
%define vers 2.3.4
|
%define vers 2.3.5
|
||||||
%define _vers 2_3_4
|
%define _vers 2_3_5
|
||||||
|
|
||||||
%if "%{flavor}" == ""
|
%if "%{flavor}" == ""
|
||||||
ExclusiveArch: do_not_build
|
ExclusiveArch: do_not_build
|
||||||
@ -253,9 +253,8 @@ Patch2: mvapich2-arm-support.patch
|
|||||||
Patch3: 0001-Drop-GCC-check.patch
|
Patch3: 0001-Drop-GCC-check.patch
|
||||||
Patch4: reproducible.patch
|
Patch4: reproducible.patch
|
||||||
Patch5: fix-missing-return-code.patch
|
Patch5: fix-missing-return-code.patch
|
||||||
Patch6: wrapper-revert-ldflag-order-change.patch
|
Patch6: mvapich2-remove-deprecated-sys_siglist.patch
|
||||||
Patch7: mvapich2-fix-double-free.patch
|
Patch7: rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
|
||||||
Patch8: mvapich2-remove-deprecated-sys_siglist.patch
|
|
||||||
|
|
||||||
## Armv7 specific patches
|
## Armv7 specific patches
|
||||||
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
|
# 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
|
%patch4 -p1
|
||||||
%patch5
|
%patch5
|
||||||
%patch6
|
%patch6
|
||||||
%patch7
|
%patch7 -p1
|
||||||
%patch8
|
|
||||||
|
|
||||||
# Only apply these patches on Armv7
|
# Only apply these patches on Armv7
|
||||||
%ifarch armv7hl
|
%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