forked from pool/mvapich2
Accepting request 734303 from home:NMoreyChaisemartin:branches:science:HPC
- Update to mvapich2 2.3.2 (jsc#SLE-8544) - See CHANGELOG for fixes and new features - Drop mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch as it was fixed upstream. - Use FAT LTO objects in order to provide proper static library. - Add 0001-Drop-real128.patch to fix compilation on armv7 OBS-URL: https://build.opensuse.org/request/show/734303 OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=64
This commit is contained in:
parent
4a2cc85c6a
commit
fa13d197e3
74
0001-Drop-real128.patch
Normal file
74
0001-Drop-real128.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?=
|
||||||
|
<zbyszek@arm03-packager01.cloud.fedoraproject.org>
|
||||||
|
Date: Wed, 28 Aug 2019 10:57:55 +0000
|
||||||
|
Subject: [PATCH] Drop real128
|
||||||
|
|
||||||
|
https://github.com/pmodels/mpich/issues/4005
|
||||||
|
---
|
||||||
|
.../fortran/use_mpi_f08/mpi_f08_types.f90 | 24 -------------------
|
||||||
|
1 file changed, 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||||
|
index f8b0fa811..46bdf6972 100644
|
||||||
|
--- a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||||
|
+++ b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||||
|
@@ -248,10 +248,8 @@ interface MPI_Sizeof
|
||||||
|
module procedure MPI_Sizeof_xint64
|
||||||
|
module procedure MPI_Sizeof_xreal32
|
||||||
|
module procedure MPI_Sizeof_xreal64
|
||||||
|
- module procedure MPI_Sizeof_xreal128
|
||||||
|
module procedure MPI_Sizeof_xcomplex32
|
||||||
|
module procedure MPI_Sizeof_xcomplex64
|
||||||
|
- module procedure MPI_Sizeof_xcomplex128
|
||||||
|
end interface
|
||||||
|
|
||||||
|
private :: MPI_Sizeof_character
|
||||||
|
@@ -263,10 +261,8 @@ private :: MPI_Sizeof_xint32
|
||||||
|
private :: MPI_Sizeof_xint64
|
||||||
|
private :: MPI_Sizeof_xreal32
|
||||||
|
private :: MPI_Sizeof_xreal64
|
||||||
|
-private :: MPI_Sizeof_xreal128
|
||||||
|
private :: MPI_Sizeof_xcomplex32
|
||||||
|
private :: MPI_Sizeof_xcomplex64
|
||||||
|
-private :: MPI_Sizeof_xcomplex128
|
||||||
|
|
||||||
|
contains
|
||||||
|
|
||||||
|
@@ -350,16 +346,6 @@ subroutine MPI_Sizeof_xreal64 (x, size, ierror)
|
||||||
|
ierror = 0
|
||||||
|
end subroutine MPI_Sizeof_xreal64
|
||||||
|
|
||||||
|
-subroutine MPI_Sizeof_xreal128 (x, size, ierror)
|
||||||
|
- use,intrinsic :: iso_fortran_env, only: real128
|
||||||
|
- real(real128),dimension(..) :: x
|
||||||
|
- integer, intent(out) :: size
|
||||||
|
- integer, optional, intent(out) :: ierror
|
||||||
|
-
|
||||||
|
- size = storage_size(x)/8
|
||||||
|
- ierror = 0
|
||||||
|
-end subroutine MPI_Sizeof_xreal128
|
||||||
|
-
|
||||||
|
subroutine MPI_Sizeof_xcomplex32 (x, size, ierror)
|
||||||
|
use,intrinsic :: iso_fortran_env, only: real32
|
||||||
|
complex(real32),dimension(..) :: x
|
||||||
|
@@ -380,16 +366,6 @@ subroutine MPI_Sizeof_xcomplex64 (x, size, ierror)
|
||||||
|
ierror = 0
|
||||||
|
end subroutine MPI_Sizeof_xcomplex64
|
||||||
|
|
||||||
|
-subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
|
||||||
|
- use,intrinsic :: iso_fortran_env, only: real128
|
||||||
|
- complex(real128),dimension(..) :: x
|
||||||
|
- integer, intent(out) :: size
|
||||||
|
- integer, optional, intent(out) :: ierror
|
||||||
|
-
|
||||||
|
- size = storage_size(x)/8
|
||||||
|
- ierror = 0
|
||||||
|
-end subroutine MPI_Sizeof_xcomplex128
|
||||||
|
-
|
||||||
|
subroutine MPI_Status_f2f08(f_status, f08_status, ierror)
|
||||||
|
integer, intent(in) :: f_status(MPI_STATUS_SIZE)
|
||||||
|
type(MPI_Status), intent(out) :: f08_status
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf
|
|
||||||
size 16978520
|
|
3
mvapich2-2.3.2.tar.gz
Normal file
3
mvapich2-2.3.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf
|
||||||
|
size 17054531
|
@ -1,142 +0,0 @@
|
|||||||
commit a99fe07d76f518d8ce98752e3251e1c6d601ca7f
|
|
||||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
|
||||||
Date: Fri Aug 2 10:53:11 2019 +0200
|
|
||||||
|
|
||||||
mvapich2: make sure ibv_get_device_list returned one before freeing it
|
|
||||||
|
|
||||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
|
||||||
|
|
||||||
diff --git src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c
|
|
||||||
index 8a6f06bb43a1..0eaab4a30804 100644
|
|
||||||
--- src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c
|
|
||||||
+++ src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c
|
|
||||||
@@ -632,7 +632,8 @@ mv2_multirail_info_type mv2_get_multirail_info()
|
|
||||||
g_mv2_multirail_info = mv2_num_rail_unknown;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if(dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
}
|
|
||||||
return g_mv2_multirail_info;
|
|
||||||
}
|
|
||||||
diff --git src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c
|
|
||||||
index 0634d4ae48d2..6414bc0b76b8 100644
|
|
||||||
--- src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c
|
|
||||||
+++ src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c
|
|
||||||
@@ -572,7 +572,8 @@ int rdma_get_process_to_rail_mapping(int mrail_user_defined_p2r_type)
|
|
||||||
}
|
|
||||||
fn_exit:
|
|
||||||
/* Housekeeping operations */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
MPIU_Free(p2r_only_numbers);
|
|
||||||
MPIU_Free(mrail_p2r_string);
|
|
||||||
mrail_p2r_string = NULL;
|
|
||||||
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 89bf75ef49ab..4d97eb107be6 100644
|
|
||||||
--- src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
|
||||||
+++ src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
|
|
||||||
@@ -387,7 +387,8 @@ int rdma_find_network_type(struct ibv_device **dev_list, int num_devices,
|
|
||||||
*num_usable_hcas = num_unknwn_cards;
|
|
||||||
}
|
|
||||||
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
|
|
||||||
return network_type;
|
|
||||||
}
|
|
||||||
@@ -514,7 +515,8 @@ int ring_rdma_open_hca(struct mv2_MPIDI_CH3I_RDMA_Process_t *proc)
|
|
||||||
|
|
||||||
fn_exit:
|
|
||||||
/* Clean up before exit */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
return is_device_opened;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -614,7 +616,8 @@ retry_hca_open:
|
|
||||||
|
|
||||||
if (!ib_dev) {
|
|
||||||
/* Clean up before exit */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
MPIR_ERR_SETFATALANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**fail",
|
|
||||||
"**fail %s", "No IB device found");
|
|
||||||
}
|
|
||||||
@@ -624,7 +627,8 @@ retry_hca_open:
|
|
||||||
proc->nic_context[rdma_num_hcas] = ibv_open_device(ib_dev);
|
|
||||||
if (!proc->nic_context[rdma_num_hcas]) {
|
|
||||||
/* Clean up before exit */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
MPIR_ERR_SETFATALANDJUMP2(mpi_errno, MPI_ERR_OTHER, "**fail",
|
|
||||||
"%s %d", "Failed to open HCA number",
|
|
||||||
rdma_num_hcas);
|
|
||||||
@@ -641,7 +645,8 @@ retry_hca_open:
|
|
||||||
ibv_alloc_pd(proc->nic_context[rdma_num_hcas]);
|
|
||||||
if (!proc->ptag[rdma_num_hcas]) {
|
|
||||||
/* Clean up before exit */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
MPIR_ERR_SETFATALANDJUMP2(mpi_errno, MPI_ERR_OTHER,
|
|
||||||
"**fail", "%s%d",
|
|
||||||
"Failed to alloc pd number ",
|
|
||||||
@@ -672,7 +677,8 @@ retry_hca_open:
|
|
||||||
|
|
||||||
fn_exit:
|
|
||||||
/* Clean up before exit */
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
return mpi_errno;
|
|
||||||
|
|
||||||
fn_fail:
|
|
||||||
diff --git src/mpid/ch3/channels/mrail/src/gen2/sysreport.c src/mpid/ch3/channels/mrail/src/gen2/sysreport.c
|
|
||||||
index c4754ada2e7b..e427925bf996 100644
|
|
||||||
--- src/mpid/ch3/channels/mrail/src/gen2/sysreport.c
|
|
||||||
+++ src/mpid/ch3/channels/mrail/src/gen2/sysreport.c
|
|
||||||
@@ -111,7 +111,8 @@ static int hca_check(int rank) {
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
return mpi_errno;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c
|
|
||||||
index e023a9239a39..110f92e2eddf 100644
|
|
||||||
--- src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c
|
|
||||||
+++ src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c
|
|
||||||
@@ -281,7 +281,8 @@ finished_query:
|
|
||||||
MPIR_ERR_POP(mpi_errno);
|
|
||||||
}
|
|
||||||
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if (dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
return 0;
|
|
||||||
#else
|
|
||||||
PRINT_ERROR( "Unable to get the device name, please set MV2_SHARP_HCA_NAME and MV2_SHARP_PORT, then rerun the program. ");
|
|
||||||
diff --git src/mpid/ch3/channels/psm/src/psm_entry.c src/mpid/ch3/channels/psm/src/psm_entry.c
|
|
||||||
index 09220e66b7f1..1e5b29e3104c 100755
|
|
||||||
--- src/mpid/ch3/channels/psm/src/psm_entry.c
|
|
||||||
+++ src/mpid/ch3/channels/psm/src/psm_entry.c
|
|
||||||
@@ -226,7 +226,8 @@ mv2_arch_hca_type MV2_get_arch_hca_type(void)
|
|
||||||
hca_type = MV2_HCA_ANY;
|
|
||||||
|
|
||||||
g_mv2_arch_hca_type = (uint64_t)arch_type << 32 | hca_type;
|
|
||||||
- ibv_free_device_list(dev_list);
|
|
||||||
+ if(dev_list)
|
|
||||||
+ ibv_free_device_list(dev_list);
|
|
||||||
#else
|
|
||||||
g_mv2_arch_hca_type = mv2_get_arch_hca_type(NULL);
|
|
||||||
#endif
|
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 6 08:10:21 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||||
|
|
||||||
|
- Update to mvapich2 2.3.2 (jsc#SLE-8544)
|
||||||
|
- See CHANGELOG for fixes and new features
|
||||||
|
- Drop mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch
|
||||||
|
as it was fixed upstream.
|
||||||
|
- Use FAT LTO objects in order to provide proper static library.
|
||||||
|
- Add 0001-Drop-real128.patch to fix compilation on armv7
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 2 08:56:21 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
Fri Aug 2 08:56:21 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
%global flavor @BUILD_FLAVOR@%{nil}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
%define pname mvapich2
|
%define pname mvapich2
|
||||||
%define vers 2.3.1
|
%define vers 2.3.2
|
||||||
%define _vers 2_3_1
|
%define _vers 2_3_2
|
||||||
|
|
||||||
%if "%{flavor}" == ""
|
%if "%{flavor}" == ""
|
||||||
ExclusiveArch: do_not_build
|
ExclusiveArch: do_not_build
|
||||||
@ -168,7 +168,8 @@ Patch2: mvapich2-arm-support.patch
|
|||||||
# It's been merged upstream, should be removed with the next release
|
# It's been merged upstream, should be removed with the next release
|
||||||
Patch3: 0001-Drop-GCC-check.patch
|
Patch3: 0001-Drop-GCC-check.patch
|
||||||
Patch4: reproducible.patch
|
Patch4: reproducible.patch
|
||||||
Patch5: mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch
|
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
|
||||||
|
Patch5: 0001-Drop-real128.patch
|
||||||
Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/
|
Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -300,10 +301,14 @@ is based on MPICH2 and MVICH. This package contains the static libraries
|
|||||||
%patch2
|
%patch2
|
||||||
%patch3
|
%patch3
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5
|
# Only apply this patch on Armv7
|
||||||
|
%ifarch armv7hl
|
||||||
|
%patch5 -p1
|
||||||
|
%endif
|
||||||
cp /usr/share/automake*/config.* .
|
cp /usr/share/automake*/config.* .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||||
PERL_USE_UNSAFE_INC=1 ./autogen.sh
|
PERL_USE_UNSAFE_INC=1 ./autogen.sh
|
||||||
%if %{with hpc}
|
%if %{with hpc}
|
||||||
%{hpc_setup}
|
%{hpc_setup}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user