forked from pool/mvapich2
- Add patches to fix compilation errors with GCC >= 14:
- mrail-fix-incompatible-pointer-issues.patch - util-add-missing-include.patch - psm-add-missing-declaration.patch - Refresh 0001-Drop-real128.patch to work with patch -p0 - Switch to autopatch OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=103
This commit is contained in:
commit
13e60bd8b4
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
59
0001-Drop-GCC-check.patch
Normal file
59
0001-Drop-GCC-check.patch
Normal file
@ -0,0 +1,59 @@
|
||||
commit b609280fc0d0f0f5a728b08e874977cb16f921b8
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Thu May 2 08:17:42 2019 +0200
|
||||
|
||||
0001 Drop GCC check
|
||||
|
||||
Skip GCC badly written GCC check intended for older released that may cause
|
||||
bugs during future GCC updates
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git autogen.sh autogen.sh
|
||||
index a0b3d897d15b..f13f3ad543f0 100755
|
||||
--- autogen.sh
|
||||
+++ autogen.sh
|
||||
@@ -516,7 +516,7 @@ fi
|
||||
|
||||
echo_n "Checking for automake version... "
|
||||
recreate_tmp
|
||||
-ver=1.15
|
||||
+ver=1.13
|
||||
cat > .tmp/configure.ac<<EOF
|
||||
AC_INIT(testver,1.0)
|
||||
AC_CONFIG_AUX_DIR([m4])
|
||||
@@ -554,7 +554,7 @@ fi
|
||||
|
||||
echo_n "Checking for libtool version... "
|
||||
recreate_tmp
|
||||
-ver=2.4.4
|
||||
+ver=2.4.2
|
||||
cat <<EOF >.tmp/configure.ac
|
||||
AC_INIT(testver,1.0)
|
||||
AC_CONFIG_AUX_DIR([m4])
|
||||
diff --git src/binding/cxx/buildiface src/binding/cxx/buildiface
|
||||
index 3afd823c8bd0..9f73c84d7eb8 100755
|
||||
--- src/binding/cxx/buildiface
|
||||
+++ src/binding/cxx/buildiface
|
||||
@@ -1454,21 +1454,6 @@ sub printDefineChecks {
|
||||
#endif\n\n";
|
||||
}
|
||||
|
||||
- # GCC changed the calling convention between 3.2.3 and 3.4.3 (!!!)
|
||||
- # check for that
|
||||
- print $OUTFD "
|
||||
-// Check for incompatible GCC versions
|
||||
-// GCC (specifically) g++ changed the calling convention
|
||||
-// between 3.2.3 and 3.4.3 (!!) Normally such changes
|
||||
-// should only occur at major releases (e.g., version 3 to 4)
|
||||
-#ifdef __GNUC__
|
||||
-# if __GNUC__ >= \@GNUCXX_VERSION\@
|
||||
-# if __GNUC_MINOR__ > 2 && \@GNUCXX_MINORVERSION\@ == 2
|
||||
-# error 'Please use the same version of GCC and g++ for compiling MPICH and user MPI programs'
|
||||
-# endif
|
||||
-# endif
|
||||
-#endif\n";
|
||||
-
|
||||
print $OUTFD "
|
||||
/*
|
||||
* Because the API is defined, some methods have parameters that are
|
281
0001-Drop-Real-16.patch
Normal file
281
0001-Drop-Real-16.patch
Normal file
@ -0,0 +1,281 @@
|
||||
commit 55d03ccf1f3969b185f00e5572c5a0675e000264
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Fri Jun 5 10:11:12 2020 +0200
|
||||
|
||||
0001 Drop Real(16)
|
||||
|
||||
Real(16) does not work on armv7
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git src/binding/fortran/mpif_h/Makefile.mk src/binding/fortran/mpif_h/Makefile.mk
|
||||
index d2de6bc779ac..73049dbd9379 100644
|
||||
--- src/binding/fortran/mpif_h/Makefile.mk
|
||||
+++ src/binding/fortran/mpif_h/Makefile.mk
|
||||
@@ -390,7 +390,6 @@ mpi_f77_sources += src/binding/fortran/mpif_h/sendf.c \
|
||||
src/binding/fortran/mpif_h/null_type_copy_fnf.c
|
||||
mpi_core_sources += src/binding/fortran/mpif_h/fdebug.c \
|
||||
src/binding/fortran/mpif_h/setbot.c \
|
||||
- src/binding/fortran/mpif_h/fortran_ops.F \
|
||||
src/binding/fortran/mpif_h/setbotf.f
|
||||
mpi_sources += src/binding/fortran/mpif_h/statusf2c.c src/binding/fortran/mpif_h/statusc2f.c
|
||||
|
||||
diff --git src/binding/fortran/mpif_h/buildiface src/binding/fortran/mpif_h/buildiface
|
||||
index 2b7a77f22c90..9eebc69a4359 100755
|
||||
--- src/binding/fortran/mpif_h/buildiface
|
||||
+++ src/binding/fortran/mpif_h/buildiface
|
||||
@@ -1045,7 +1045,6 @@ EOT
|
||||
print MAKEFD <<EOT;
|
||||
mpi_core_sources += src/binding/fortran/mpif_h/fdebug.c \\
|
||||
src/binding/fortran/mpif_h/setbot.c \\
|
||||
- src/binding/fortran/mpif_h/fortran_ops.F \\
|
||||
src/binding/fortran/mpif_h/setbotf.f
|
||||
mpi_sources += src/binding/fortran/mpif_h/statusf2c.c src/binding/fortran/mpif_h/statusc2f.c
|
||||
|
||||
diff --git src/mpi/coll/opland.c src/mpi/coll/opland.c
|
||||
index 2fecd3d5fc59..59b208809471 100644
|
||||
--- src/mpi/coll/opland.c
|
||||
+++ src/mpi/coll/opland.c
|
||||
@@ -79,7 +79,7 @@ void MPIR_LAND (
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
#ifdef __ibmxl__
|
||||
@@ -88,7 +88,7 @@ void MPIR_LAND (
|
||||
real16_land_(invec, inoutvec, Len);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
default: {
|
||||
MPID_THREADPRIV_DECL;
|
||||
@@ -123,10 +123,10 @@ int MPIR_LAND_check_dtype ( MPI_Datatype type )
|
||||
MPIR_OP_TYPE_GROUP(FLOATING_POINT)
|
||||
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
return MPI_SUCCESS;
|
||||
diff --git src/mpi/coll/oplor.c src/mpi/coll/oplor.c
|
||||
index cd340db11edf..81ba1a166cf7 100644
|
||||
--- src/mpi/coll/oplor.c
|
||||
+++ src/mpi/coll/oplor.c
|
||||
@@ -79,7 +79,7 @@ void MPIR_LOR (
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
#ifdef __ibmxl__
|
||||
@@ -88,7 +88,7 @@ void MPIR_LOR (
|
||||
real16_lor_(invec, inoutvec, Len);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
default: {
|
||||
MPID_THREADPRIV_DECL;
|
||||
@@ -124,10 +124,10 @@ int MPIR_LOR_check_dtype ( MPI_Datatype type )
|
||||
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
return MPI_SUCCESS;
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
diff --git src/mpi/coll/opmax.c src/mpi/coll/opmax.c
|
||||
index fde306a32512..c933bdd1ab18 100644
|
||||
--- src/mpi/coll/opmax.c
|
||||
+++ src/mpi/coll/opmax.c
|
||||
@@ -45,7 +45,7 @@ void MPIR_MAXF(
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
#ifdef __ibmxl__
|
||||
@@ -54,7 +54,7 @@ void MPIR_MAXF(
|
||||
real16_max_(invec, inoutvec, Len);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
default: {
|
||||
MPID_THREADPRIV_DECL;
|
||||
@@ -84,10 +84,10 @@ int MPIR_MAXF_check_dtype( MPI_Datatype type )
|
||||
MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
|
||||
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
return MPI_SUCCESS;
|
||||
diff --git src/mpi/coll/opmaxloc.c src/mpi/coll/opmaxloc.c
|
||||
index 56387843bdc8..036e50f02dea 100644
|
||||
--- src/mpi/coll/opmaxloc.c
|
||||
+++ src/mpi/coll/opmaxloc.c
|
||||
@@ -146,7 +146,7 @@ void MPIR_MAXLOC(
|
||||
case MPI_2INTEGER: MPIR_MAXLOC_F_CASE(MPI_Fint);
|
||||
case MPI_2REAL: MPIR_MAXLOC_F_CASE(MPIR_FC_REAL_CTYPE);
|
||||
case MPI_2DOUBLE_PRECISION: MPIR_MAXLOC_F_CASE(MPIR_FC_DOUBLE_CTYPE);
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
#ifdef __ibmxl__
|
||||
@@ -155,7 +155,7 @@ void MPIR_MAXLOC(
|
||||
real16_maxloc_(invec, inoutvec, &flen);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif
|
||||
#endif
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
@@ -196,11 +196,11 @@ int MPIR_MAXLOC_check_dtype( MPI_Datatype type )
|
||||
case MPI_2INTEGER:
|
||||
case MPI_2REAL:
|
||||
case MPI_2DOUBLE_PRECISION:
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
diff --git src/mpi/coll/opmin.c src/mpi/coll/opmin.c
|
||||
index a9da3e9f1736..1468ae7dba72 100644
|
||||
--- src/mpi/coll/opmin.c
|
||||
+++ src/mpi/coll/opmin.c
|
||||
@@ -43,7 +43,7 @@ void MPIR_MINF (
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
#ifdef __ibmxl__
|
||||
@@ -52,7 +52,7 @@ void MPIR_MINF (
|
||||
real16_min_(invec, inoutvec, Len);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
default: {
|
||||
MPID_THREADPRIV_DECL;
|
||||
@@ -82,10 +82,10 @@ int MPIR_MINF_check_dtype ( MPI_Datatype type )
|
||||
MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
|
||||
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
return MPI_SUCCESS;
|
||||
diff --git src/mpi/coll/opminloc.c src/mpi/coll/opminloc.c
|
||||
index ccbfb15fa472..fbbe028aaeb6 100644
|
||||
--- src/mpi/coll/opminloc.c
|
||||
+++ src/mpi/coll/opminloc.c
|
||||
@@ -146,7 +146,7 @@ void MPIR_MINLOC(
|
||||
case MPI_2INTEGER: MPIR_MINLOC_F_CASE(MPI_Fint);
|
||||
case MPI_2REAL: MPIR_MINLOC_F_CASE(MPIR_FC_REAL_CTYPE);
|
||||
case MPI_2DOUBLE_PRECISION: MPIR_MINLOC_F_CASE(MPIR_FC_DOUBLE_CTYPE);
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
#ifdef __ibmxl__
|
||||
@@ -155,7 +155,7 @@ void MPIR_MINLOC(
|
||||
real16_minloc_(invec, inoutvec, &flen);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif
|
||||
#endif
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
@@ -198,11 +198,11 @@ int MPIR_MINLOC_check_dtype( MPI_Datatype type )
|
||||
case MPI_2INTEGER:
|
||||
case MPI_2REAL:
|
||||
case MPI_2DOUBLE_PRECISION:
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
diff --git src/mpi/coll/opsum.c src/mpi/coll/opsum.c
|
||||
index 43b0f24687af..6f446dd26b1c 100644
|
||||
--- src/mpi/coll/opsum.c
|
||||
+++ src/mpi/coll/opsum.c
|
||||
@@ -66,7 +66,7 @@ void MPIR_SUM (
|
||||
#define MPIR_OP_C_COMPLEX_TYPE_MACRO(mpi_type_,c_type_,type_name_) MPIR_OP_TYPE_MACRO(mpi_type_,c_type_,type_name_)
|
||||
/* --BEGIN ERROR HANDLING-- */
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case MPI_REAL16:
|
||||
#ifdef __ibmxl__
|
||||
@@ -75,7 +75,7 @@ void MPIR_SUM (
|
||||
real16_sum_(invec, inoutvec, Len);
|
||||
#endif
|
||||
break;
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
default: {
|
||||
MPID_THREADPRIV_DECL;
|
||||
@@ -108,10 +108,10 @@ int MPIR_SUM_check_dtype( MPI_Datatype type )
|
||||
MPIR_OP_TYPE_GROUP(COMPLEX)
|
||||
MPIR_OP_TYPE_GROUP(COMPLEX_EXTRA)
|
||||
#ifdef HAVE_FORTRAN_BINDING
|
||||
-#ifndef __PGI
|
||||
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
|
||||
/* As of v20.1, PGI compilers only support real8 */
|
||||
case (MPI_REAL16):
|
||||
-#endif /*ifndef __PGI*/
|
||||
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
|
||||
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
|
||||
#undef MPIR_OP_TYPE_MACRO
|
||||
return MPI_SUCCESS;
|
70
0001-Drop-real128.patch
Normal file
70
0001-Drop-real128.patch
Normal file
@ -0,0 +1,70 @@
|
||||
commit d08634eff711fd6c68bc197aec538a9f15a067eb
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Fri Jun 5 10:07:37 2020 +0200
|
||||
|
||||
0001 Drop real128
|
||||
|
||||
See https://github.com/pmodels/mpich/issues/4005
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||
index f8b0fa811e01..46bdf6972dde 100644
|
||||
--- src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||
+++ 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
|
11
_constraints
Normal file
11
_constraints
Normal file
@ -0,0 +1,11 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<processors>4</processors>
|
||||
<disk>
|
||||
<size unit="G">4</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">6</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</constraints>
|
9
_multibuild
Normal file
9
_multibuild
Normal file
@ -0,0 +1,9 @@
|
||||
<multibuild>
|
||||
<package>standard</package>
|
||||
<package>testsuite</package>
|
||||
<package>psm2</package>
|
||||
<package>psm2-testsuite</package>
|
||||
<package>gnu-hpc</package>
|
||||
<package>gnu-hpc-psm2</package>
|
||||
<package>gnu-hpc-testsuite</package>
|
||||
</multibuild>
|
21
macros.hpc-mvapich2
Normal file
21
macros.hpc-mvapich2
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# mvapich2
|
||||
#
|
||||
|
||||
%hpc_mvapich2_init(V:) \
|
||||
%{-V: %define _mf_ver %{-V*}} \
|
||||
%{expand: %%global hpc_mvapich2_dep_version %%{?_mf_ver}} \
|
||||
%{expand: %%global hpc_mvapich2_dir mvapich2} \
|
||||
%global hpc_mvapich2_pack_version %{hpc_mvapich2_dep_version} \
|
||||
%{expand: %%global _hpc_mvapich2_modules mvapich2}
|
||||
|
||||
# We may have to add a version here.
|
||||
%hpc_setup_mvapich2 \
|
||||
module load mvapich2
|
||||
|
||||
%hpc_mvapich2_requires \
|
||||
Requires: mvapich2%{hpc_mvapich2_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
|
||||
|
||||
%hpc_mvapich2_requires_devel \
|
||||
Requires: mvapich2%{hpc_mvapich2_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc-devel
|
||||
|
15
mpivars.csh
Normal file
15
mpivars.csh
Normal file
@ -0,0 +1,15 @@
|
||||
set -f path= ( prefix/bin $path )
|
||||
|
||||
if ($?MANPATH) then
|
||||
if ( "$MANPATH" !~ *prefix/man* ) then
|
||||
setenv MANPATH prefix/man:$MANPATH
|
||||
endif
|
||||
else
|
||||
setenv MANPATH prefix/man:
|
||||
endif
|
||||
|
||||
if ($?LD_LIBRARY_PATH) then
|
||||
setenv LD_LIBRARY_PATH libdir:$LD_LIBRARY_PATH
|
||||
else
|
||||
setenv LD_LIBRARY_PATH libdir
|
||||
endif
|
31
mpivars.sh
Normal file
31
mpivars.sh
Normal file
@ -0,0 +1,31 @@
|
||||
case $PATH in
|
||||
*prefix/bin*)
|
||||
true
|
||||
;;
|
||||
*)
|
||||
PATH=prefix/bin:$PATH
|
||||
esac
|
||||
|
||||
|
||||
case $MANPATH in
|
||||
*prefix/share/man*)
|
||||
true
|
||||
;;
|
||||
*)
|
||||
MANPATH=prefix/share/man:$MANPATH
|
||||
export MANPATH
|
||||
esac
|
||||
|
||||
|
||||
case $LD_LIBRARY_PATH in
|
||||
*libdir*)
|
||||
true
|
||||
;;
|
||||
*)
|
||||
if [ -z "$LD_LIBRARY_PATH" ]; then
|
||||
LD_LIBRARY_PATH=libdir
|
||||
else
|
||||
LD_LIBRARY_PATH="libdir:$LD_LIBRARY_PATH"
|
||||
fi
|
||||
export LD_LIBRARY_PATH
|
||||
esac
|
56
mrail-fix-incompatible-pointer-issues.patch
Normal file
56
mrail-fix-incompatible-pointer-issues.patch
Normal file
@ -0,0 +1,56 @@
|
||||
commit 0b2339b6c8d2221a0db1e2f00b87025c7aac4fb7
|
||||
Author: Nicolas Morey <nmorey@suse.com>
|
||||
Date: Thu Sep 5 08:51:06 2024 +0200
|
||||
|
||||
mrail: fix incompatible pointer issues
|
||||
|
||||
GCC 14 is complaining about incompatible pointer types.
|
||||
Fix the function definition so quiet them.
|
||||
|
||||
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
||||
|
||||
diff --git src/mpid/ch3/channels/mrail/src/gen2/ofed_abstraction.h src/mpid/ch3/channels/mrail/src/gen2/ofed_abstraction.h
|
||||
index 07190c5177e6..36462b6bbd64 100644
|
||||
--- src/mpid/ch3/channels/mrail/src/gen2/ofed_abstraction.h
|
||||
+++ src/mpid/ch3/channels/mrail/src/gen2/ofed_abstraction.h
|
||||
@@ -191,10 +191,11 @@ typedef struct _rdma_ops_t {
|
||||
int (*get_cm_event)(struct rdma_event_channel *channel,
|
||||
struct rdma_cm_event **event);
|
||||
int (*ack_cm_event)(struct rdma_cm_event *event);
|
||||
- int (*getaddrinfo) (char *node, char *service, struct rdma_addrinfo *hints,
|
||||
- struct rdma_addrinfo **res);
|
||||
- int (*freeaddrinfo)(struct rdma_addrinfo *res);
|
||||
- char* (*event_str)(enum rdma_cm_event_type event);
|
||||
+ int (*getaddrinfo) (const char *node, const char *service,
|
||||
+ const struct rdma_addrinfo *hints,
|
||||
+ struct rdma_addrinfo **res);
|
||||
+ void (*freeaddrinfo)(struct rdma_addrinfo *res);
|
||||
+ const char* (*event_str)(enum rdma_cm_event_type event);
|
||||
struct ibv_context** (*get_devices) (int *num_devices);
|
||||
void (*free_devices) (struct ibv_context **list);
|
||||
} rdma_ops_t;
|
||||
@@ -208,13 +209,13 @@ extern void *rdma_dl_handle;
|
||||
typedef struct _umad_ops_t {
|
||||
int (*init)(void);
|
||||
int (*done)(void);
|
||||
- int (*get_ca)(char *ca_name, umad_ca_t *ca);
|
||||
+ int (*get_ca)(const char *ca_name, umad_ca_t *ca);
|
||||
int (*release_ca)(umad_ca_t *ca);
|
||||
void* (*get_mad)(void *umad);
|
||||
int (*send)(int portid, int agentid, void *umad, int length,
|
||||
int timeout_ms, int retries);
|
||||
int (*recv)(int portid, void *umad, int *length, int timeout_ms);
|
||||
- int (*open_port)(char *ca_name, int portnum);
|
||||
+ int (*open_port)(const char *ca_name, int portnum);
|
||||
int (*close_port)(int portid);
|
||||
int (*u_register)(int portid, int mgmt_class, int mgmt_version,
|
||||
uint8_t rmpp_version, long method_mask[16 / sizeof(long)]);
|
||||
@@ -309,7 +310,7 @@ do { \
|
||||
#else
|
||||
#define MV2_DLSYM(_struct_, _handle_, _prefix_, _function_) \
|
||||
do { \
|
||||
- _struct_._function_ = _prefix_##_##_function_; \
|
||||
+ _struct_._function_ = (void*)_prefix_##_##_function_; \
|
||||
} while (0)
|
||||
#endif
|
||||
|
BIN
mvapich2-2.3.7-1.tar.gz
(Stored with Git LFS)
Normal file
BIN
mvapich2-2.3.7-1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
70
mvapich2-allow-building-with-external-hwloc.patch
Normal file
70
mvapich2-allow-building-with-external-hwloc.patch
Normal file
@ -0,0 +1,70 @@
|
||||
commit 2a05bb1eba231f7b95ddb3fdeec21146b99e43f1
|
||||
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
Date: Wed Jul 6 15:21:38 2022 +0200
|
||||
|
||||
mvapich2: allow building with external hwloc
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
diff --git Makefile.am Makefile.am
|
||||
index 17788bb3ba49..c8cfeb941de7 100644
|
||||
--- Makefile.am
|
||||
+++ Makefile.am
|
||||
@@ -203,9 +203,11 @@ if BUILD_OSU_MVAPICH
|
||||
if BUILD_HWLOC_v1
|
||||
SUBDIRS += contrib/hwloc_v1
|
||||
else
|
||||
+if BUILD_HWLOC_v2
|
||||
SUBDIRS += contrib/hwloc_v2
|
||||
endif
|
||||
endif
|
||||
+endif
|
||||
|
||||
# build the current directory and then the examples directory after everything else
|
||||
SUBDIRS += . examples
|
||||
@@ -222,8 +224,12 @@ if BUILD_HWLOC_v1
|
||||
AM_CPPFLAGS += -Icontrib/hwloc_v1/include/ -I$(top_srcdir)/contrib/hwloc_v1/include
|
||||
lib_lib@MPILIBNAME@_la_LIBADD += contrib/hwloc_v1/src/libhwloc_embedded.la
|
||||
else
|
||||
+if BUILD_HWLOC_v2
|
||||
AM_CPPFLAGS += -Icontrib/hwloc_v2/include/ -I$(top_srcdir)/contrib/hwloc_v2/include
|
||||
-lib_lib@MPILIBNAME@_la_LIBADD += contrib/hwloc_v2/hwloc/libhwloc_embedded.la
|
||||
+lib_lib@MPILIBNAME@_la_LIBADD += contrib/hwloc_v2/src/libhwloc_embedded.la
|
||||
+else
|
||||
+lib_lib@MPILIBNAME@_la_LDFLAGS += -lhwloc
|
||||
+endif
|
||||
endif
|
||||
endif
|
||||
|
||||
diff --git configure.ac configure.ac
|
||||
index d073cb1bef5e..b82de7a9a5fb 100644
|
||||
--- configure.ac
|
||||
+++ configure.ac
|
||||
@@ -539,18 +539,24 @@ dnl based on the environment.
|
||||
AC_ARG_WITH(hwloc,
|
||||
AC_HELP_STRING([--with-hwloc=version],
|
||||
[Specify the hwloc version to use with MVAPICH2
|
||||
- (Options: v1, v2) (Default: v1)]),,
|
||||
+ (Options: v1, v2, external) (Default: v1)]),,
|
||||
with_hwloc=v1)
|
||||
|
||||
AM_CONDITIONAL([BUILD_HWLOC_v1], [test x$with_hwloc = xv1])
|
||||
AM_CONDITIONAL([BUILD_HWLOC_v2], [test x$with_hwloc = xv2])
|
||||
+AM_CONDITIONAL([BUILD_HWLOC_EXT], [test x$with_hwloc = xexternal])
|
||||
|
||||
if test "$with_hwloc" = "v1" ; then
|
||||
AC_CONFIG_SUBDIRS([contrib/hwloc_v1])
|
||||
AC_DEFINE([_USE_HWLOC_V1_], 1, [Define when using HWLOC V1])
|
||||
else
|
||||
- AC_CONFIG_SUBDIRS([contrib/hwloc_v2])
|
||||
- AC_DEFINE([_USE_HWLOC_V2_], 1, [Define when using HWLOC V2])
|
||||
+ if test "$with_hwloc" = "v2" ; then
|
||||
+ AC_CONFIG_SUBDIRS([contrib/hwloc_v2])
|
||||
+ AC_DEFINE([_USE_HWLOC_V2_], 1, [Define when using HWLOC V2])
|
||||
+ else
|
||||
+ AC_DEFINE([_USE_HWLOC_EXT_], 1, [Define when using HWLOC External])
|
||||
+ AC_DEFINE([_USE_HWLOC_V2_], 1, [Define when using HWLOC V2])
|
||||
+ fi
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(device,
|
28
mvapich2-arm-support.patch
Normal file
28
mvapich2-arm-support.patch
Normal file
@ -0,0 +1,28 @@
|
||||
commit 55640b711726705a0127eb7ce767ef69e7642790
|
||||
Author: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
|
||||
Date: Thu Jun 8 15:14:01 2017 +0200
|
||||
|
||||
mvapich2 arm support
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
|
||||
|
||||
diff --git src/mpid/ch3/channels/common/include/mv2_clock.h src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
index af8bb2b77d08..b73a4ffa2fc0 100644
|
||||
--- src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
+++ src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
@@ -92,7 +92,14 @@ static inline cycles_t get_cycles()
|
||||
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
+#elif defined(__ARM_ARCH_7A__)
|
||||
+typedef unsigned long long cycles_t;
|
||||
+static inline cycles_t get_cycles(void)
|
||||
+{
|
||||
+ cycles_t clk;
|
||||
+ asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (clk));
|
||||
+ return clk;
|
||||
+}
|
||||
#elif defined(__s390__) || defined(__s390x__)
|
||||
typedef unsigned long cycles_t;
|
||||
static inline cycles_t get_cycles()
|
94
mvapich2-openpa-add-memory-barriers.patch
Normal file
94
mvapich2-openpa-add-memory-barriers.patch
Normal file
@ -0,0 +1,94 @@
|
||||
commit 68c4106b2a8d8fdb9ba4e2bab90e90e3392b6bbd
|
||||
Author: Nicolas Morey <nmorey@suse.com>
|
||||
Date: Thu Oct 26 12:39:20 2023 +0200
|
||||
|
||||
mvapich2: openpa: add memory barriers
|
||||
|
||||
Backport from openPA:
|
||||
commit 28d602b620b5d7ec8ca1a7f3ad8ab27d439b1751
|
||||
Author: Neil Fortner <nfortne2@hdfgroup.org>
|
||||
Date: Wed Dec 19 13:14:57 2012 -0600
|
||||
|
||||
Add more memory barriers to LL/SC ABA tests. This should fix the recent errors
|
||||
on POWER7.
|
||||
|
||||
Reviewed by goodell.
|
||||
|
||||
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
||||
|
||||
diff --git src/openpa/test/test_primitives.c src/openpa/test/test_primitives.c
|
||||
index a83b95e00578..4533c643d581 100644
|
||||
--- src/openpa/test/test_primitives.c
|
||||
+++ src/openpa/test/test_primitives.c
|
||||
@@ -3783,12 +3783,18 @@ static int threaded_llsc_int_aba_helper_0(llsc_int_aba_t *udata)
|
||||
nerrors++;
|
||||
} /* end if */
|
||||
|
||||
+ /* Make sure shared_val is initialized before passing point 0 */
|
||||
+ OPA_write_barrier();
|
||||
+
|
||||
/* Point 0 */
|
||||
OPA_store_int(&udata->pass_point_0, 1);
|
||||
|
||||
/* Wait until thread 1 passes point 1 */
|
||||
while(!OPA_load_int(&udata->pass_point_1));
|
||||
|
||||
+ /* Make sure that change_val is loaded after passing point 1 */
|
||||
+ OPA_read_barrier();
|
||||
+
|
||||
/* Store conditional 1 to the shared value */
|
||||
if(OPA_SC_int(&udata->shared_val, 1)) {
|
||||
/* SC succeeded, make sure that the shared value was not changed by
|
||||
@@ -3870,12 +3876,12 @@ static void *threaded_llsc_int_aba_helper_1(void *_udata)
|
||||
* of this test */
|
||||
OPA_store_int(&udata->shared_val, 1);
|
||||
OPA_store_int(&udata->shared_val, 0);
|
||||
-
|
||||
- /* Write barrier to make sure the shared value was actually updated
|
||||
- * before we mark point 1 as passed */
|
||||
- OPA_write_barrier();
|
||||
} /* end if */
|
||||
|
||||
+ /* Write barrier to make sure the shared_val (if appropriate) and
|
||||
+ * change_val are actually updated before we mark point 1 as passed */
|
||||
+ OPA_write_barrier();
|
||||
+
|
||||
/* Point 1 */
|
||||
OPA_store_int(&udata->pass_point_1, 1);
|
||||
|
||||
@@ -4012,12 +4018,18 @@ static int threaded_llsc_ptr_aba_helper_0(llsc_ptr_aba_t *udata)
|
||||
nerrors++;
|
||||
} /* end if */
|
||||
|
||||
+ /* Make sure shared_val is initialized before passing point 0 */
|
||||
+ OPA_write_barrier();
|
||||
+
|
||||
/* Point 0 */
|
||||
OPA_store_int(&udata->pass_point_0, 1);
|
||||
|
||||
/* Wait until thread 1 passes point 1 */
|
||||
while(!OPA_load_int(&udata->pass_point_1));
|
||||
|
||||
+ /* Make sure that change_val is loaded after passing point 1 */
|
||||
+ OPA_read_barrier();
|
||||
+
|
||||
/* Store conditional 1 to the shared value */
|
||||
if(OPA_SC_ptr(&udata->shared_val, (void *) ((int *) 0 + 1))) {
|
||||
/* SC succeeded, make sure that the shared value was not changed by
|
||||
@@ -4099,12 +4111,12 @@ static void *threaded_llsc_ptr_aba_helper_1(void *_udata)
|
||||
* of this test */
|
||||
OPA_store_ptr(&udata->shared_val, (void *) ((int *) 0 + 1));
|
||||
OPA_store_ptr(&udata->shared_val, (void *) 0);
|
||||
-
|
||||
- /* Write barrier to make sure the shared value was actually updated
|
||||
- * before we mark point 1 as passed */
|
||||
- OPA_write_barrier();
|
||||
} /* end if */
|
||||
|
||||
+ /* Write barrier to make sure the shared_val (if appropriate) and
|
||||
+ * change_val are actually updated before we mark point 1 as passed */
|
||||
+ OPA_write_barrier();
|
||||
+
|
||||
/* Point 1 */
|
||||
OPA_store_int(&udata->pass_point_1, 1);
|
||||
|
27
mvapich2-s390_get_cycles.patch
Normal file
27
mvapich2-s390_get_cycles.patch
Normal file
@ -0,0 +1,27 @@
|
||||
commit 92d5b11beaf8919979705f44d56eb0569feceb93
|
||||
Author: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
|
||||
Date: Thu Jun 8 15:11:12 2017 +0200
|
||||
|
||||
mvapich2-s390_get_cycles
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
|
||||
|
||||
diff --git src/mpid/ch3/channels/common/include/mv2_clock.h src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
index dba8e51bf129..af8bb2b77d08 100644
|
||||
--- src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
+++ src/mpid/ch3/channels/common/include/mv2_clock.h
|
||||
@@ -93,6 +93,14 @@ static inline cycles_t get_cycles()
|
||||
return ret;
|
||||
}
|
||||
|
||||
+#elif defined(__s390__) || defined(__s390x__)
|
||||
+typedef unsigned long cycles_t;
|
||||
+static inline cycles_t get_cycles()
|
||||
+{
|
||||
+ unsigned long clk;
|
||||
+ asm volatile("stck %0" : "=Q" (clk) : : "cc");
|
||||
+ return clk >> 2;
|
||||
+}
|
||||
#else
|
||||
#warning get_cycles not implemented for this architecture: attempt asm/timex.h
|
||||
#include <asm/timex.h>
|
872
mvapich2.changes
Normal file
872
mvapich2.changes
Normal file
@ -0,0 +1,872 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 5 07:24:42 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Add patches to fix compilation errors with GCC >= 14:
|
||||
- mrail-fix-incompatible-pointer-issues.patch
|
||||
- util-add-missing-include.patch
|
||||
- psm-add-missing-declaration.patch
|
||||
- Refresh 0001-Drop-real128.patch to work with patch -p0
|
||||
- Switch to autopatch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 25 13:22:53 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Disable 32b builds of hpc flavours.
|
||||
- Remove obsolete dependency to sysfsutils
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 11:49:03 UTC 2024 - pgajdos@suse.com
|
||||
|
||||
- Use %patch -P N instead of deprecated %patchN.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 26 10:42:07 UTC 2023 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Add mvapich2-openpa-add-memory-barriers.patch to fix testsuite issue
|
||||
on pcc64 (bsc#1216610, bsc#1216612)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 7 16:57:40 UTC 2023 - Nicolas Morey <nicolas.morey@suse.com>
|
||||
|
||||
- Drop support for obsolete TrueScale (bsc#1212146)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 5 21:11:29 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||
|
||||
- Reduce constraints to match the actual requirement. Exaggerating
|
||||
the requirements hurts both this package (time until build can
|
||||
start) as well as other OBS users (blocking large workers
|
||||
without need).
|
||||
- Use a reproducible timestamp instead of removing it altogether.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 28 08:30:49 UTC 2022 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Update reproducible.patch to remove timestamp generated at compilation time
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 6 15:08:09 UTC 2022 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Add mvapich2-allow-building-with-external-hwloc.patch
|
||||
to allow building against an external hwloc library
|
||||
- Build mvapich2 HPC flavors against pmix and hwloc system libraries
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 29 12:54:33 UTC 2022 - Klaus Kämpf <kkaempf@suse.com>
|
||||
|
||||
- add pass-correct-size-to-snprintf.patch to fix potential buffer
|
||||
overflows (required to make 'sundials' testsuite pass)
|
||||
|
||||
- Update to mvapich2 2.3.7
|
||||
* Features and Enhancements (since 2.3.6):
|
||||
- Added support for systems with Rockport's switchless networks
|
||||
* Added automatic architecture detection
|
||||
* Optimized performance for point-to-point operations
|
||||
- Added support for the Cray Slingshot 10 interconnect
|
||||
- Enhanced support for blocking collective offload using
|
||||
Mellanox SHARP
|
||||
* Scatter and Scatterv
|
||||
- Enhanced support for non-blocking collective offload using
|
||||
Mellanox SHARP
|
||||
* Iallreduce, Ibarrier, Ibcast, and Ireduce
|
||||
|
||||
* Bug Fixes (since 2.3.6):
|
||||
- Removed several deprectated functions
|
||||
- Thanks to Honggang Li @RedHat for the report
|
||||
- Fixed a bug where tools like CMake FindMPI would not
|
||||
detect MVAPICH when compiled without Hydra mpiexec
|
||||
- Thanks to Chris Chambreau and Adam Moody @LLNL for the report
|
||||
- Fixed compilation error when building with mpirun and without hydra
|
||||
- Thanks to James Long @University of Illinois for the report
|
||||
- Fixed issue with setting RoCE mode correctly without RDMA_CM.
|
||||
- Thanks to Nicolas Gagnon @Rockport Networks for the report
|
||||
- Fixed an issue on heterogeneous clusters where QP attributes were
|
||||
set incorrectly
|
||||
- Thanks to X-ScaleSolutions for the report and fix
|
||||
- Fixed a memory leak in improbe on the PSM channel
|
||||
- Thanks to Gregory Lee @LLNL Beichuan Yan @University of Colorado
|
||||
for the report
|
||||
- Added retry logic for PSM connection establishment
|
||||
- Thanks to Gregory Lee @LLNL for the report and X-ScaleSolutions
|
||||
for the patch
|
||||
- Fixed an initialization error when using PSM and gcc's -pg option
|
||||
- Thanks to Gregory Lee @LLNL for the report and X-ScaleSolutions for
|
||||
the patch
|
||||
- Fixed a potential integer overflow when transfering large arrays
|
||||
- Thanks to Alexander Melnikov for the report and patch
|
||||
|
||||
- Fix Url: link
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 16 11:07:12 UTC 2022 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Disable dlopen for verbs library (bsc#1196019)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 19 15:20:53 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Move rpm macros to %_rpmmacrodir (bsc#1191386)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 28 07:20:18 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Remove obsolete python dependency (bsc#1190996)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 18 08:08:52 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Update to mvapich2 2.3.6
|
||||
- Enhanced performance for UD-Hybrid code
|
||||
- Add multi-rail support for UD-Hybrid code
|
||||
- Enhanced performance for shared-memory collectives
|
||||
- Enhanced job-startup performance for flux job launcher
|
||||
- Use PMI2 by default when SLURM is selected as process manager
|
||||
- Add support to use aligned memory allocations for multi-threaded
|
||||
applications
|
||||
- Architecture detection and enhanced point-to-point tuning for
|
||||
Oracle BM.HPC2 cloud shape
|
||||
- Add support for GCC compiler v11
|
||||
- Update hwloc v1 code to v1.11.14
|
||||
- Update hwloc v2 code to v2.4.2
|
||||
- Drop obsolete patches:
|
||||
- fix-missing-return-code.patch as it was fixed upstream
|
||||
- mvapich2-remove-deprecated-sys_siglist.patch
|
||||
- rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
|
||||
- Refresh reproducible.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Re-add mvapich2-fix-double-free.patch as the bug was
|
||||
somehow be reintroduced (bsc#1144000)
|
||||
- Add mvapich2-remove-deprecated-sys_siglist.patch to
|
||||
fix compilation errors with newer glibc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 29 13:44:44 UTC 2020 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- HPC: Fix environment module settings for MANPATH.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 25 07:03:57 UTC 2020 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- For HPC builds check for gnu compiler suite version >= 10 and
|
||||
set -fallow-argument-mismatch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 23 15:53:00 UTC 2020 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- Add build support for gcc8/9/10 to HPC build (bsc#1174439).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 3 08:13:07 UTC 2020 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Update so mvapich2 2.3.4
|
||||
- See CHANGELOG for fixes and new features
|
||||
- Add fix-missing-return-code.patch to fix compilation errors
|
||||
- Add 0001-Drop-Real-16.patch to disable Real(16) support on Armv7
|
||||
- Add wrapper-revert-ldflag-order-change.patch to revert LDFLAGS order
|
||||
change done in 2.3.4.
|
||||
This allows legacy builds to work without adding a -lmpi flag
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 21 08:17:00 UTC 2020 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Update to mvapich2 2.3.3 (jsc#SLE-8497)
|
||||
- See CHANGELOG for fixes and new features
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Add mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch
|
||||
to Fix segfault when ib_uverbs is not loaded (bsc#1144000)
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 27 15:14:10 UTC 2019 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- Add reproducible.patch to sort readdir to make package build reproducible
|
||||
(boo#1041090)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 13 07:59:22 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Update to mvapich2 2.3.1
|
||||
- See CHANGELOG for fixes and new features
|
||||
- Refreshed patches against the new version:
|
||||
- 0001-Drop-GCC-check.patch
|
||||
- mvapich2-arm-support.patch
|
||||
- mvapich2-s390_get_cycles.patch
|
||||
- Drop mvapich2-fix-double-free.patch as it was merged upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 2 08:00:51 UTC 2019 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
- Add mvapich2-fix-double-free.patch to fix a segfault
|
||||
when running on a machine with no RDMA hardware (bsc#1133797)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 20 19:01:00 UTC 2019 - Ana Guerrero Lopez <aguerrero@suse.com>
|
||||
|
||||
- Add patch to remove obsolete GCC check (bnc#1129421). It also patches
|
||||
autogen.sh to get the autotools working in SLE12SP4.
|
||||
* 0001-Drop-GCC-check.patch
|
||||
- Force to re-run autotools to generate properly the files after
|
||||
patching src/binding/cxx/buildiface
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 18 14:21:27 UTC 2018 - eich@suse.com
|
||||
|
||||
- Add macro _hpc_mvapich2_modules for modules support (bsc#1116458).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 10 12:15:10 UTC 2018 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Remove bashism in postun scriptlet
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 5 06:54:33 UTC 2018 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Fix handling of mpi-selector during updates (bsc#1098653)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 19 09:21:45 UTC 2018 - eich@suse.com
|
||||
|
||||
- macros.hpc-mvapich2:
|
||||
replace %%compiler_family by %%hpc_compiler_family
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 16 16:13:32 UTC 2018 - msuchanek@suse.com
|
||||
|
||||
- Use sched_yield instead of pthread_yield (boo#1102421).
|
||||
- drop mvapich2-pthread_yield.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 18 13:12:15 UTC 2018 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Add missing bsc and fate references to changelog
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 12 07:07:37 UTC 2018 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Disable HPC builds for SLE12 (fate#323655)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 25 13:07:18 UTC 2018 - kasimir_@outlook.de
|
||||
|
||||
- Change mvapich2-arm-support.patch to provide missing functions for
|
||||
armv6hl
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 9 11:29:26 UTC 2018 - cgoll@suse.com
|
||||
|
||||
- Fix summary in module files (bnc#1080259)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 30 20:04:01 UTC 2018 - eich@suse.com
|
||||
|
||||
- Use macro in mpivars.(c)sh to be independent of changes to the module
|
||||
setup for the compiler (boo#1078364).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 5 19:03:44 UTC 2018 - eich@suse.com
|
||||
|
||||
- Switch from gcc6 to gcc7 as additional compiler flavor for HPC on SLES.
|
||||
- Fix library package requires - use HPC macro (boo#1074890).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 6 14:06:37 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Add conflicts between the macros-devel packages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 5 13:30:48 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Add BuildRequires to libibmad-devel for older release (SLE <= 12.2, Leap <= 42.2)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 12 15:38:14 UTC 2017 - eich@suse.com
|
||||
|
||||
- Add HPC specific build targets using environment modules
|
||||
(FATE#321712).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 12 09:25:01 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Drop unnecessary dependency to xorg-x11-devel
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 11 09:19:37 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Only requires verbs libraries for verbs build.
|
||||
libibverbs devel causes a SEGV when run in a chroot using the
|
||||
psm or psm2 conduits
|
||||
- Add testuite packages for all build flavours
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 13 14:59:13 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Add LD_LIBRARY_PATH to mpivars.sh and mpivars.csh
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 13 07:54:38 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Disable rpath in pkgconfig files
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 5 15:12:46 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Remove redondant configure options already passed by %configure
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 26 12:24:30 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Change install dir to allow multiple flavor to be installed
|
||||
at the same time (bsc#934090)
|
||||
- Fix bsc#1045955
|
||||
- Fix mvapich2-psm package to use libpsm (TrueScale)
|
||||
- Add mvapich2-psm2 package using libpsm2 (OmniPath)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 26 09:37:42 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Use _multibuild to build the various mvapich2-flavours
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 23 15:40:51 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Replace dependency from libibmad-devel to infiniband-diags-devel
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 14 10:01:07 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Have mvapich2 and mvapich2-psm conflicts between them
|
||||
- Cleanup spec file
|
||||
- Remove mvapich2-testsuite RPM
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 8 13:55:32 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Reenable arm compilation
|
||||
- Rename and cleanup mvapich-s390_get_cycles.patch to
|
||||
mvapich2-s390_get_cycles.patch for coherency
|
||||
- Cleanup mvapich2-pthread_yield.patch
|
||||
- Add mvapich2-arm-support.patch to provide missing functions for
|
||||
armv7hl and aarch64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 8 11:38:36 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Remove version dependencies to libibumad, libibverbs and librdmacm
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 16 16:29:41 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Fix mvapich2-testsuite packaging
|
||||
- Disable build on armv7
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 29 08:06:23 CEST 2017 - pth@suse.de
|
||||
|
||||
- Make dependencies on libs now coming from rdma-core versioned.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 29 13:08:18 CET 2016 - pth@suse.de
|
||||
|
||||
- Create environment module (bsc#1004628).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 23 11:00:43 CET 2016 - pth@suse.de
|
||||
|
||||
- Fix URL.
|
||||
- Update to mvapich 2.2 GA. Changes since rc1:
|
||||
MVAPICH2 2.2 (09/07/2016)
|
||||
|
||||
* Features and Enhancements (since 2.2rc2):
|
||||
- Single node collective tuning for Bridges@PSC, Stampede@TACC and other
|
||||
architectures
|
||||
- Enable PSM builds when both PSM and PSM2 libraries are present
|
||||
- Add support for HCAs that return result of atomics in big endian notation
|
||||
- Establish loopback connections by default if HCA supports atomics
|
||||
* Bug Fixes (since 2.2rc2):
|
||||
- Fix minor error in use of communicator object in collectives
|
||||
- Fix missing u_int64_t declaration with PGI compilers
|
||||
- Fix memory leak in RMA rendezvous code path
|
||||
|
||||
MVAPICH2 2.2rc2 (08/08/2016)
|
||||
|
||||
* Features and Enhancements (since 2.2rc1):
|
||||
- Enhanced performance for MPI_Comm_split through new bitonic algorithm
|
||||
- Enable graceful fallback to Shared Memory if LiMIC2 or CMA transfer fails
|
||||
- Enable support for multiple MPI initializations
|
||||
- Unify process affinity support in Gen2, PSM and PSM2 channels
|
||||
- Remove verbs dependency when building the PSM and PSM2 channels
|
||||
- Allow processes to request MPI_THREAD_MULTIPLE when socket or NUMA node
|
||||
level affinity is specified
|
||||
- Point-to-point and collective performance optimization for Intel Knights
|
||||
Landing
|
||||
- Automatic detection and tuning for InfiniBand EDR HCAs
|
||||
- Warn user to reconfigure library if rank type is not large enough to
|
||||
represent all ranks in job
|
||||
- Collective tuning for Opal@LLNL, Bridges@PSC, and Stampede-1.5@TACC
|
||||
- Tuning and architecture detection for Intel Broadwell processors
|
||||
- Add ability to avoid using --enable-new-dtags with ld
|
||||
- Add LIBTVMPICH specific CFLAGS and LDFLAGS
|
||||
|
||||
* Bug Fixes (since 2.2rc1):
|
||||
- Disable optimization that removes use of calloc in ptmalloc hook
|
||||
detection code
|
||||
- Fix weak alias typos (allows successful compilation with CLANG compiler)
|
||||
- Fix issues in PSM large message gather operations
|
||||
- Enhance error checking in collective tuning code
|
||||
- Fix issues with UD based communication in RoCE mode
|
||||
- Fix issues with PMI2 support in singleton mode
|
||||
- Fix default binding bug in hydra launcher
|
||||
- Fix issues with Checkpoint Restart when launched with mpirun_rsh
|
||||
- Fix fortran binding issues with Intel 2016 compilers
|
||||
- Fix issues with socket/NUMA node level binding
|
||||
- Disable atomics when using Connect-IB with RDMA_CM
|
||||
- Fix hang in MPI_Finalize when using hybrid channel
|
||||
- Fix memory leaks
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 15 14:04:50 CET 2016 - pth@suse.de
|
||||
|
||||
- Update to version 2.2rc1 (fate#319240). Changes since 2.1:
|
||||
|
||||
MVAPICH2 2.2rc1 (03/29/2016)
|
||||
|
||||
* Features and Enhancements (since 2.2b):
|
||||
- Support for OpenPower architecture
|
||||
- Optimized inter-node and intra-node communication
|
||||
- Support for Intel Omni-Path architecture
|
||||
- Thanks to Intel for contributing the patch
|
||||
- Introduction of a new PSM2 channel for Omni-Path
|
||||
- Support for RoCEv2
|
||||
- Architecture detection for PSC Bridges system with Omni-Path
|
||||
- Enhanced startup performance and reduced memory footprint for storing
|
||||
InfiniBand end-point information with SLURM
|
||||
- Support for shared memory based PMI operations
|
||||
- Availability of an updated patch from the MVAPICH project website
|
||||
with this support for SLURM installations
|
||||
- Optimized pt-to-pt and collective tuning for Chameleon InfiniBand
|
||||
systems at TACC/UoC
|
||||
- Enable affinity by default for TrueScale(PSM) and Omni-Path(PSM2)
|
||||
channels
|
||||
- Enhanced tuning for shared-memory based MPI_Bcast
|
||||
- Enhanced debugging support and error messages
|
||||
- Update to hwloc version 1.11.2
|
||||
|
||||
* Bug Fixes (since 2.2b):
|
||||
- Fix issue in some of the internal algorithms used for MPI_Bcast,
|
||||
MPI_Alltoall and MPI_Reduce
|
||||
- Fix hang in one of the internal algorithms used for MPI_Scatter
|
||||
- Thanks to Ivan Raikov@Stanford for reporting this issue
|
||||
- Fix issue with rdma_connect operation
|
||||
- Fix issue with Dynamic Process Management feature
|
||||
- Fix issue with de-allocating InfiniBand resources in blocking mode
|
||||
- Fix build errors caused due to improper compile time guards
|
||||
- Thanks to Adam Moody@LLNL for the report
|
||||
- Fix finalize hang when running in hybrid or UD-only mode
|
||||
- Thanks to Jerome Vienne@TACC for reporting this issue
|
||||
- Fix issue in MPI_Win_flush operation
|
||||
- Thanks to Nenad Vukicevic for reporting this issue
|
||||
- Fix out of memory issues with non-blocking collectives code
|
||||
- Thanks to Phanisri Pradeep Pratapa and Fang Liu@GaTech for
|
||||
reporting this issue
|
||||
- Fix fall-through bug in external32 pack
|
||||
- Thanks to Adam Moody@LLNL for the report and patch
|
||||
- Fix issue with on-demand connection establishment and blocking mode
|
||||
- Thanks to Maksym Planeta@TU Dresden for the report
|
||||
- Fix memory leaks in hardware multicast based broadcast code
|
||||
- Fix memory leaks in TrueScale(PSM) channel
|
||||
- Fix compilation warnings
|
||||
|
||||
MVAPICH2 2.2b (11/12/2015)
|
||||
|
||||
* Features and Enhancements (since 2.2a):
|
||||
- Enhanced performance for small messages
|
||||
- Enhanced startup performance with SLURM
|
||||
- Support for PMIX_Iallgather and PMIX_Ifence
|
||||
- Support to enable affinity with asynchronous progress thread
|
||||
- Enhanced support for MPIT based performance variables
|
||||
- Tuned VBUF size for performance
|
||||
- Improved startup performance for QLogic PSM-CH3 channel
|
||||
- Thanks to Maksym Planeta@TU Dresden for the patch
|
||||
|
||||
* Bug Fixes (since 2.2a):
|
||||
- Fix issue with MPI_Get_count in QLogic PSM-CH3 channel with very large
|
||||
messages (>2GB)
|
||||
- Fix issues with shared memory collectives and checkpoint-restart
|
||||
- Fix hang with checkpoint-restart
|
||||
- Fix issue with unlinking shared memory files
|
||||
- Fix memory leak with MPIT
|
||||
- Fix minor typos and usage of inline and static keywords
|
||||
- Thanks to Maksym Planeta@TU Dresden for the patch and suggestions
|
||||
- Fix missing MPIDI_FUNC_EXIT
|
||||
- Thanks to Maksym Planeta@TU Dresden for the patch
|
||||
- Remove unused code
|
||||
- Thanks to Maksym Planeta@TU Dresden for the patch
|
||||
- Continue with warning if user asks to enable XRC when the system does not
|
||||
support XRC
|
||||
|
||||
MVAPICH2 2.2a (08/17/2015)
|
||||
|
||||
* Features and Enhancements (since 2.1 GA):
|
||||
|
||||
- Based on MPICH 3.1.4
|
||||
- Support for backing on-demand UD CM information with shared memory
|
||||
for minimizing memory footprint
|
||||
- Reorganized HCA-aware process mapping
|
||||
- Dynamic identification of maximum read/atomic operations supported by HCA
|
||||
- Enabling support for intra-node communications in RoCE mode without
|
||||
shared memory
|
||||
- Updated to hwloc 1.11.0
|
||||
- Updated to sm_20 kernel optimizations for MPI Datatypes
|
||||
- Automatic detection and tuning for 24-core Haswell architecture
|
||||
|
||||
* Bug Fixes (since 2.1 GA):
|
||||
|
||||
- Fix for error with multi-vbuf design for GPU based communication
|
||||
- Fix bugs with hybrid UD/RC/XRC communications
|
||||
- Fix for MPICH putfence/getfence for large messages
|
||||
- Fix for error in collective tuning framework
|
||||
- Fix validation failure with Alltoall with IN_PLACE option
|
||||
- Thanks for Mahidhar Tatineni @SDSC for the report
|
||||
- Fix bug with MPI_Reduce with IN_PLACE option
|
||||
- Thanks to Markus Geimer for the report
|
||||
- Fix for compilation failures with multicast disabled
|
||||
- Thanks to Devesh Sharma @Emulex for the report
|
||||
- Fix bug with MPI_Bcast
|
||||
- Fix IPC selection for shared GPU mode systems
|
||||
- Fix for build time warnings and memory leaks
|
||||
- Fix issues with Dynamic Process Management
|
||||
- Thanks to Neil Spruit for the report
|
||||
- Fix bug in architecture detection code
|
||||
- Thanks to Adam Moody @LLNL for the report
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 14 11:28:41 CEST 2016 - pth@suse.de
|
||||
|
||||
- Create and include modules file for Mvapich2 (bsc#1004628).
|
||||
|
||||
- Remove mvapich2-fix-implicit-decl.patch as the fix is upstream.
|
||||
- Adapt spec file to the changed micro benchmark install directory.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 24 14:24:59 UTC 2016 - p.drouand@gmail.com
|
||||
|
||||
- Update to version 2.1
|
||||
* Features and Enhancements (since 2.1rc2):
|
||||
- Tuning for EDR adapters
|
||||
- Optimization of collectives for SDSC Comet system
|
||||
- Based on MPICH-3.1.4
|
||||
- Enhanced startup performance with mpirun_rsh
|
||||
- Checkpoint-Restart Support with DMTCP (Distributed MultiThreaded
|
||||
CheckPointing)
|
||||
- Thanks to the DMTCP project team (http://dmtcp.sourceforge.net/)
|
||||
- Support for handling very large messages in RMA
|
||||
- Optimize size of buffer requested for control messages in large message
|
||||
transfer
|
||||
- Enhanced automatic detection of atomic support
|
||||
- Optimized collectives (bcast, reduce, and allreduce) for 4K processes
|
||||
- Introduce support to sleep for user specified period before aborting
|
||||
- Disable PSM from setting CPU affinity
|
||||
- Install PSM error handler to print more verbose error messages
|
||||
- Introduce retry mechanism to perform psm_ep_open in PSM channel
|
||||
* Bug-Fixes (since 2.1rc2):
|
||||
- Relocate reading environment variables in PSM
|
||||
- Fix issue with automatic process mapping
|
||||
- Fix issue with checkpoint restart when full path is not given
|
||||
- Fix issue with Dynamic Process Management
|
||||
- Fix issue in CUDA IPC code path
|
||||
- Fix corner case in CMA runtime detection
|
||||
* Features and Enhancements (since 2.1rc1):
|
||||
- Based on MPICH-3.1.4
|
||||
- Enhanced startup performance with mpirun_rsh
|
||||
- Checkpoint-Restart Support with DMTCP (Distributed MultiThreaded
|
||||
CheckPointing)
|
||||
- Support for handling very large messages in RMA
|
||||
- Optimize size of buffer requested for control messages in large message
|
||||
transfer
|
||||
- Enhanced automatic detection of atomic support
|
||||
- Optimized collectives (bcast, reduce, and allreduce) for 4K processes
|
||||
- Introduce support to sleep for user specified period before aborting
|
||||
- Disable PSM from setting CPU affinity
|
||||
- Install PSM error handler to print more verbose error messages
|
||||
- Introduce retry mechanism to perform psm_ep_open in PSM channel
|
||||
* Bug-Fixes (since 2.1rc1):
|
||||
- Fix failures with shared memory collectives with checkpoint-restart
|
||||
- Fix failures with checkpoint-restart when using internal communication
|
||||
buffers of different size
|
||||
- Fix undeclared variable error when --disable-cxx is specified with
|
||||
configure
|
||||
- Fix segfault seen during connect/accept with dynamic processes
|
||||
- Fix errors with large messages pack/unpack operations in PSM channel
|
||||
- Fix for bcast collective tuning
|
||||
- Fix assertion errors in one-sided put operations in PSM channel
|
||||
- Fix issue with code getting stuck in infinite loop inside ptmalloc
|
||||
- Fix assertion error in shared memory large message transfers
|
||||
- Fix compilation warnings
|
||||
* Features and Enhancements (since 2.1a):
|
||||
- Based on MPICH-3.1.3
|
||||
- Flexibility to use internal communication buffers of different size for
|
||||
improved performance and memory footprint
|
||||
- Improve communication performance by removing locks from critical path
|
||||
- Enhanced communication performance for small/medium message sizes
|
||||
- Support for linking Intel Trace Analyzer and Collector
|
||||
- Increase the number of connect retry attempts with RDMA_CM
|
||||
- Automatic detection and tuning for Haswell architecture
|
||||
* Bug-Fixes (since 2.1a):
|
||||
- Fix automatic detection of support for atomics
|
||||
- Fix issue with void pointer arithmetic with PGI
|
||||
- Fix deadlock in ctxidup MPICH test in PSM channel
|
||||
- Fix compile warnings
|
||||
* Features and Enhancements (since 2.0):
|
||||
- Based on MPICH-3.1.2
|
||||
- Support for PMI-2 based startup with SLURM
|
||||
- Enhanced startup performance for Gen2/UD-Hybrid channel
|
||||
- GPU support for MPI_Scan and MPI_Exscan collective operations
|
||||
- Optimize creation of 2-level communicator
|
||||
- Collective optimization for PSM-CH3 channel
|
||||
- Tuning for IvyBridge architecture
|
||||
- Add -export-all option to mpirun_rsh
|
||||
- Support for additional MPI-T performance variables (PVARs)
|
||||
in the CH3 channel
|
||||
- Link with libstdc++ when building with GPU support
|
||||
(required by CUDA 6.5)
|
||||
* Bug-Fixes (since 2.0):
|
||||
- Fix error in large message (>2GB) transfers in CMA code path
|
||||
- Fix memory leaks in OFA-IB-CH3 and OFA-IB-Nemesis channels
|
||||
- Fix issues with optimizations for broadcast and reduce collectives
|
||||
- Fix hang at finalize with Gen2-Hybrid/UD channel
|
||||
- Fix issues for collectives with non power-of-two process counts
|
||||
- Make ring startup use HCA selected by user
|
||||
- Increase counter length for shared-memory collectives
|
||||
- Use download Url as source
|
||||
- Some other minor improvements
|
||||
- Add mvapich2-fix-implicit-decl.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 9 13:32:28 CEST 2014 - pth@suse.de
|
||||
|
||||
- Don't provide the full source uri as build servis can't handle it.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 8 17:12:27 CEST 2014 - pth@suse.de
|
||||
|
||||
- Only run autogen.sh if the distribution has a new enough automake.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 24 17:06:22 CEST 2014 - pth@suse.de
|
||||
|
||||
- Update to mvapich2 2.0 GMC:
|
||||
* Features and Enhancements (since 2.0rc2):
|
||||
- Consider CMA in collective tuning framework
|
||||
|
||||
* Bug-Fixes (since 2.0rc2):
|
||||
- Fix bug when disabling registration cache
|
||||
- Fix shared memory window bug when shared memory collectives
|
||||
are disabled.
|
||||
- Fix mpirun_rsh bug when running mpmd programs with no arguments
|
||||
|
||||
- Exclude Aarch64 for the time being as asm/timex.h seems to be missing
|
||||
from the glibc kernel headers.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 3 11:24:34 CEST 2014 - pth@suse.de
|
||||
|
||||
- Update to OFED 3.12 final.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 26 13:02:24 CEST 2014 - pth@suse.de
|
||||
|
||||
- Update to 2.0rc2:
|
||||
* Features and Enhancements (since 2.0rc1):
|
||||
- CMA support is now enabled by default
|
||||
- Optimization of collectives with CMA support
|
||||
- RMA optimizations for shared memory and atomic operations
|
||||
- Tuning RGET and Atomics operations
|
||||
- Tuning RDMA FP-based communication
|
||||
- MPI-T support for additional performance and control variables
|
||||
- The --enable-mpit-pvars=yes configuration option will now
|
||||
enable only MVAPICH2 specific variables
|
||||
- Large message transfer support for PSM interface
|
||||
- Optimization of collectives for PSM interface
|
||||
- Updated to hwloc v1.9
|
||||
|
||||
* Bug-Fixes (since 2.0rc1):
|
||||
- Fix multicast hang when there is a single process on one node
|
||||
and more than one process on other nodes
|
||||
- Fix non-power-of-two usage of scatter-doubling-allgather algorithm
|
||||
- Fix for bcastzero type hang during finalize
|
||||
- Enhanced handling of failures in RDMA_CM based
|
||||
connection establishment
|
||||
- Fix for a hang in finalize when using RDMA_CM
|
||||
- Finish receive request when RDMA READ completes in RGET protocol
|
||||
- Always use direct RDMA when flush is used
|
||||
- Fix compilation error with --enable-g=all in PSM interface
|
||||
- Fix warnings and memory leaks
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 15 16:01:50 CEST 2014 - pth@suse.de
|
||||
|
||||
- mvapich2-psm-devel requires infinipath-psm-devel.
|
||||
- Remove redundent requires for the devel-static package.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 7 15:40:33 UTC 2014 - stefan.fent@suse.com
|
||||
|
||||
- remove typo in mvapich-s390_get_cycles.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 29 13:47:06 CEST 2014 - pth@suse.de
|
||||
|
||||
- Remove bogus 0 from spec.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 28 12:30:12 CEST 2014 - pth@suse.de
|
||||
|
||||
- Remove all additional mvapich specific CFLAGS and extra LIBS.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 25 09:41:47 CEST 2014 - pth@suse.de
|
||||
|
||||
- Fix ExclusiveArch
|
||||
- Only PSM needs explicit configuration so drop the else branch
|
||||
in configure call.
|
||||
- mvapich2 now builds in parallel so tell make.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 24 21:27:06 CEST 2014 - pth@suse.de
|
||||
|
||||
- Build Mvapich2 for Qlogic from its own mvapich2-psm.spec.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 23 18:04:36 CEST 2014 - pth@suse.de
|
||||
|
||||
- Add mvapich2-pthread_yield.patch to define GNU_SOURCE before
|
||||
including pthread.h to get pthread_yield declared.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 23 14:48:07 CEST 2014 - pth@suse.de
|
||||
|
||||
- Don't require libibcommon as it's gone with OFED 3.12.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 16 15:50:22 UTC 2014 - stefan.fent@suse.com
|
||||
|
||||
- add asm code from kernel to properly implement get_cycles on
|
||||
s390 and s390x (bnc #870424) (mvapich-s390_get_cycles.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 7 14:49:22 CEST 2014 - pth@suse.de
|
||||
|
||||
- Fix spec so that testsuite builds correctly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 5 20:28:49 CEST 2014 - pth@suse.de
|
||||
|
||||
- Update config.* to make it build on ppc64le.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 27 12:56:50 CET 2014 - pth@suse.de
|
||||
|
||||
- Regenerate autotool files to get ppc64le recognized.
|
||||
- The predefined platform macros for s390 are lower case not upcase.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 26 16:15:45 CET 2014 - pth@suse.de
|
||||
|
||||
- Finally got the syntax for conditionals in spec right...
|
||||
- Add a dummy implementation of get_cycles for s390x.
|
||||
- Update to 2.0rc1 as this is a MPI-3 implementation. For
|
||||
detailed changes see.
|
||||
- Fix options passed to mpi-selector
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 25 14:42:43 CET 2014 - pth@suse.de
|
||||
|
||||
- Include the two COPYRIGHT files in the package.
|
||||
- BuildRequire kernel-headers on s390x.
|
||||
- Fix spec file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 5 14:04:47 CET 2014 - pth@suse.de
|
||||
|
||||
- Compile with support for PSM on ix86 (fate#315889).
|
||||
- mvapich2 has a testsuite, so run it from a separate spec file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 13:13:39 CET 2014 - pth@suse.de
|
||||
|
||||
- Update to 1.9:
|
||||
- Remove mvapich2-1.0.2-non-void-rtn.patch as the changes are in
|
||||
the upstream source.
|
||||
- Reformat BuildRequires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 24 19:15:39 CET 2014 - pth@suse.de
|
||||
|
||||
- Update to OFED 3.12 daily.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 29 00:00:00 CET 2008 - - jjolly@suse.de
|
||||
|
||||
- Update to 1.0.2 from OFED 1.3 GA release
|
||||
- Minor changes to return value patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 31 00:00:00 CET 2008 - - jjolly@suse.de
|
||||
|
||||
- Update to 1.0.1 from OFED 1.3 rc2
|
||||
- Fixed several 'undefined return value' compile errors
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 10 00:00:00 CET 2007 - - hvogel@suse.de
|
||||
|
||||
- Initial Package, Version 0.9.8
|
||||
|
586
mvapich2.spec
Normal file
586
mvapich2.spec
Normal file
@ -0,0 +1,586 @@
|
||||
#
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
%define pname mvapich2
|
||||
%define vers 2.3.7
|
||||
%define _vers 2_3_7
|
||||
%define rc_ver -1
|
||||
|
||||
%if "%{flavor}" == ""
|
||||
ExclusiveArch: do_not_build
|
||||
%{bcond_with hpc}
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "standard"
|
||||
%define build_flavor verbs
|
||||
%{bcond_with hpc}
|
||||
%endif
|
||||
%if "%{flavor}" == "testsuite"
|
||||
%define build_flavor verbs
|
||||
%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
|
||||
%define testsuite 1
|
||||
%{bcond_with hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu-hpc"
|
||||
%define compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%define build_flavor verbs
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
%if "%flavor" == "gnu-hpc-testsuite"
|
||||
%define compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%define testsuite 1
|
||||
%define build_flavor verbs
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu-hpc-psm2"
|
||||
%define compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%define build_flavor psm2
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu7-hpc"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
%define build_flavor verbs
|
||||
%{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
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu7-hpc-psm2"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
%define build_flavor psm2
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu8-hpc"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 8
|
||||
%define build_flavor verbs
|
||||
%{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
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu8-hpc-psm2"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 8
|
||||
%define build_flavor psm2
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu9-hpc"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 9
|
||||
%define build_flavor verbs
|
||||
%{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
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu9-hpc-psm2"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 9
|
||||
%define build_flavor psm2
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu10-hpc"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define build_flavor verbs
|
||||
%{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
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%flavor" == "gnu10-hpc-psm2"
|
||||
%define compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define build_flavor psm2
|
||||
%{bcond_without hpc}
|
||||
%endif
|
||||
|
||||
%if "%{build_flavor}" != "verbs"
|
||||
%define pack_suff %{?build_flavor:-%{build_flavor}}
|
||||
%endif
|
||||
|
||||
%if %{without hpc}
|
||||
%define module_name mvapich2%{?pack_suff}
|
||||
%define p_prefix /usr/%_lib/mpi/gcc/%{module_name}
|
||||
%define p_bindir %{p_prefix}/bin
|
||||
%define p_datadir %{p_prefix}/share
|
||||
%define p_includedir %{p_prefix}/include
|
||||
%define p_mandir %{p_datadir}/man
|
||||
%define p_libdir %{p_prefix}/%{_lib}
|
||||
%define p_libexecdir %{p_prefix}/%{_lib}
|
||||
%define _moduledir /usr/share/modules/gnu-%{module_name}
|
||||
%define package_name mvapich2%{?pack_suff}
|
||||
%{bcond_with pmix}
|
||||
%{bcond_with hwloc}
|
||||
%else
|
||||
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m mvapich2 %{?pack_suff:-e %{build_flavor}}}
|
||||
%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 %{hpc_package_name %{_vers}}
|
||||
|
||||
%global hpc_mvapich2_dep_version %(VER=%{?m_f_ver}; echo -n ${VER})
|
||||
%global hpc_mvapich2_dir mvapich2
|
||||
%global hpc_mvapich2_pack_version %{hpc_mvapich2_dep_version}
|
||||
%{bcond_without pmix}
|
||||
%{bcond_without hwloc}
|
||||
ExcludeArch: i586 %arm s390
|
||||
%endif
|
||||
|
||||
# Disable hpc builds for SLE12
|
||||
%if 0%{?sle_version} > 120200 && 0%{?sle_version} < 150000 && %{with hpc}
|
||||
%{bcond_with skip_hpc_build}
|
||||
%else
|
||||
%{bcond_without skip_hpc_build}
|
||||
%endif
|
||||
|
||||
Name: %{package_name}
|
||||
Summary: OSU MVAPICH2 MPI package
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/Parallel
|
||||
Version: %{vers}
|
||||
Release: 0
|
||||
Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}%{?rc_ver}.tar.gz
|
||||
Source1: mpivars.sh
|
||||
Source2: mpivars.csh
|
||||
Source3: macros.hpc-mvapich2
|
||||
Source100: _multibuild
|
||||
Patch0: mvapich2-s390_get_cycles.patch
|
||||
Patch2: mvapich2-arm-support.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Drop-GCC-check.patch (bnc#1129421)
|
||||
# It's been merged upstream, should be removed with the next release
|
||||
Patch3: 0001-Drop-GCC-check.patch
|
||||
Patch4: reproducible.patch
|
||||
Patch5: pass-correct-size-to-snprintf.patch
|
||||
Patch6: mvapich2-allow-building-with-external-hwloc.patch
|
||||
Patch7: mvapich2-openpa-add-memory-barriers.patch
|
||||
Patch8: mrail-fix-incompatible-pointer-issues.patch
|
||||
Patch9: util-add-missing-include.patch
|
||||
Patch10: psm-add-missing-declaration.patch
|
||||
|
||||
## Armv7 specific patches
|
||||
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
|
||||
Patch50: 0001-Drop-real128.patch
|
||||
Patch51: 0001-Drop-Real-16.patch
|
||||
|
||||
URL: http://mvapich.cse.ohio-state.edu
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%if %{without skip_hpc_build}
|
||||
ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: automake
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: hwloc-devel >= 2.0
|
||||
%ifnarch s390 s390x %{arm}
|
||||
BuildRequires: libnuma-devel
|
||||
%endif
|
||||
BuildRequires: libtool
|
||||
BuildRequires: libtool
|
||||
%if %{without hpc}
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-fortran
|
||||
BuildRequires: mpi-selector
|
||||
%else
|
||||
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
|
||||
BuildRequires: lua-lmod
|
||||
BuildRequires: suse-hpc
|
||||
%endif
|
||||
%if %{with hwloc}
|
||||
BuildRequires: hwloc-devel
|
||||
%endif
|
||||
%if %{with pmix}
|
||||
BuildRequires: pmix-devel
|
||||
%endif
|
||||
%if "%{build_flavor}" == "psm2" && %{with skip_hpc_build}
|
||||
ExclusiveArch: x86_64
|
||||
BuildRequires: libpsm2-devel
|
||||
%endif
|
||||
%if "%{build_flavor}" == "verbs"
|
||||
BuildRequires: infiniband-diags-devel
|
||||
BuildRequires: libibumad-devel
|
||||
BuildRequires: libibverbs-devel
|
||||
BuildRequires: librdmacm-devel
|
||||
%if 0%{?sle_version} <= 120200
|
||||
BuildRequires: libibmad-devel
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{without hpc}
|
||||
Requires: mpi-selector
|
||||
%else
|
||||
%hpc_requires
|
||||
%endif
|
||||
|
||||
%description
|
||||
This is an MPI-3 implementation which includes all MPI-1 features. It
|
||||
is based on MPICH2 and MVICH.
|
||||
|
||||
%{!?testsuite:%{?with_hpc:%{hpc_master_package -a -L}}}
|
||||
|
||||
%if 0%{!?testsuite:1}
|
||||
|
||||
%package devel
|
||||
Summary: OSU MVAPICH2 MPI package
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name} = %{version}
|
||||
%if "%{build_flavor}" == "psm2"
|
||||
Requires: libpsm2-devel
|
||||
%endif
|
||||
%if "%{build_flavor}" == "verbs"
|
||||
Requires: libibumad-devel
|
||||
Requires: libibverbs-devel
|
||||
Requires: librdmacm-devel
|
||||
%endif
|
||||
%if %{without hpc}
|
||||
Requires: gcc-c++
|
||||
Requires: gcc-fortran
|
||||
%else
|
||||
%hpc_requires_devel
|
||||
%endif
|
||||
|
||||
%description devel
|
||||
This is an MPI-2 implementation which includes all MPI-1 features. It
|
||||
is based on MPICH2 and MVICH.
|
||||
|
||||
%{?with_hpc:%{hpc_master_package -a devel}}
|
||||
|
||||
%package devel-static
|
||||
Summary: OSU MVAPICH2 MPI package - static libraries
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name}-devel = %{version}
|
||||
|
||||
%description devel-static
|
||||
This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It
|
||||
is based on MPICH2 and MVICH. This package contains the static libraries
|
||||
|
||||
%package doc
|
||||
Summary: OSU MVAPICH2 MPI package - Documentation
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description doc
|
||||
This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It
|
||||
is based on MPICH2 and MVICH. This package contains the static libraries
|
||||
|
||||
%{?with_hpc:%{hpc_master_package doc}}
|
||||
|
||||
%package macros-devel
|
||||
Summary: OSU MVAPICH2 MPI package - HPC build macros
|
||||
Group: Development/Libraries/Parallel
|
||||
Requires: %{name}-devel = %{version}
|
||||
Provides: %{pname}-hpc-macros-devel = %{version}
|
||||
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
|
||||
|
||||
%description macros-devel
|
||||
This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It
|
||||
is based on MPICH2 and MVICH. This package contains the static libraries
|
||||
|
||||
%{?with_hpc:%{hpc_master_package macros-devel}}
|
||||
|
||||
%endif # ! testsuite
|
||||
|
||||
%prep
|
||||
|
||||
%{?with_hpc:%hpc_debug}
|
||||
%setup -q -n mvapich2-%{version}%{?rc_ver}
|
||||
%autopatch -M 49 -p0
|
||||
|
||||
# Only apply these patches on Armv7
|
||||
%ifarch armv7hl
|
||||
%autopatch -m 50 -p0
|
||||
%endif
|
||||
cp /usr/share/automake*/config.* .
|
||||
|
||||
%build
|
||||
%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
|
||||
export FFLAGS="-fallow-argument-mismatch $FFLAGS"
|
||||
%endif
|
||||
|
||||
PERL_USE_UNSAFE_INC=1 ./autogen.sh
|
||||
%if %{with hpc}
|
||||
%{hpc_setup}
|
||||
%{hpc_configure} \
|
||||
%else
|
||||
%configure \
|
||||
--prefix=%{p_prefix} \
|
||||
--exec-prefix=%{p_prefix} \
|
||||
--datadir=%{p_datadir} \
|
||||
--bindir=%{p_bindir} \
|
||||
--includedir=%{p_includedir} \
|
||||
--libdir=%{p_libdir} \
|
||||
--libexecdir=%{p_libexecdir} \
|
||||
--mandir=%{p_mandir} \
|
||||
%endif
|
||||
--docdir=%{_datadir}/doc/%{name} \
|
||||
--disable-wrapper-rpath \
|
||||
--enable-yield=sched_yield \
|
||||
%if %{with hwloc}
|
||||
--with-hwloc=external \
|
||||
%endif
|
||||
%if %{with pmix}
|
||||
--with-pmix=${_prefix} \
|
||||
%endif
|
||||
%if "%{build_flavor}" == "psm2"
|
||||
--with-device=ch3:psm \
|
||||
--with-psm2=/usr \
|
||||
%endif
|
||||
%if "%{build_flavor}" == "verbs"
|
||||
--disable-ibv-dlopen \
|
||||
%endif
|
||||
--without-mpe
|
||||
make %{?_smp_mflags} V=1
|
||||
|
||||
%if 0%{?testsuite}
|
||||
%check
|
||||
make V=1 check
|
||||
%endif
|
||||
|
||||
%install
|
||||
|
||||
%if 0%{?testsuite}
|
||||
# Remove everything from testsuite package
|
||||
# It is all contained by mvapich2 packages
|
||||
rm -rf %{buildroot}/*
|
||||
|
||||
%else
|
||||
make DESTDIR=%{buildroot} V=1 install
|
||||
|
||||
rm -f %{buildroot}%{p_libdir}/libfmpich.la \
|
||||
%{buildroot}%{p_libdir}/libmpich.la \
|
||||
%{buildroot}%{p_libdir}/libmpichcxx.la \
|
||||
%{buildroot}%{p_libdir}/libmpichf90.la \
|
||||
%{buildroot}%{p_libdir}/libmpl.la \
|
||||
%{buildroot}%{p_libdir}/libopa.la \
|
||||
%{buildroot}%{p_libdir}/libmpi.la \
|
||||
%{buildroot}%{p_libdir}/libmpicxx.la \
|
||||
%{buildroot}%{p_libdir}/libmpifort.la
|
||||
install -m 0755 -d %{buildroot}%{_datadir}/doc/%{name}
|
||||
install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/%{name}
|
||||
install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/%{name}
|
||||
|
||||
%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
|
||||
sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:2} > %{buildroot}%{p_bindir}/mpivars.csh
|
||||
|
||||
mkdir -p %{buildroot}%{_moduledir}
|
||||
|
||||
cat << EOF > %{buildroot}%{_moduledir}/%{version}
|
||||
#%%Module
|
||||
proc ModulesHelp { } {
|
||||
global dotversion
|
||||
puts stderr "\tLoads the gnu - mvapich2 %{version} Environment"
|
||||
}
|
||||
|
||||
module-whatis "Loads the gnu mvapich2 %{version} Environment."
|
||||
conflict gnu-mvapich2
|
||||
prepend-path PATH %{%p_bindir}
|
||||
prepend-path INCLUDE %{p_includedir}
|
||||
prepend-path INCLUDE %{p_libdir}
|
||||
prepend-path MANPATH %{p_mandir}
|
||||
prepend-path LD_LIBRARY_PATH %{p_libdir}
|
||||
|
||||
EOF
|
||||
|
||||
cat << EOF > %{buildroot}%{_moduledir}/.version
|
||||
#%%Module1.0
|
||||
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
|
||||
|
||||
%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
|
||||
# Deregister the default if we are uninstalling it
|
||||
if [ "$(/usr/bin/mpi-selector --system --query)" = "%{name}%{?pack_suff}" ]; then
|
||||
/usr/bin/mpi-selector --system --unset --yes
|
||||
fi
|
||||
fi
|
||||
%else
|
||||
%hpc_module_delete_if_default
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%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/%{name}/COPYRIGHT*
|
||||
%doc %{_datadir}/doc/%{name}/CHANGE*
|
||||
%dir %{p_prefix}
|
||||
%dir %{p_bindir}
|
||||
%dir %{p_datadir}
|
||||
%dir %{p_includedir}
|
||||
%dir %{p_mandir}
|
||||
%dir %{p_mandir}/man1
|
||||
%dir %{p_mandir}/man3
|
||||
%dir %{p_libdir}
|
||||
%dir %{p_libexecdir}
|
||||
%{p_bindir}/*
|
||||
%{p_libexecdir}/osu-micro-benchmarks
|
||||
%{p_mandir}/man1/*
|
||||
%{p_libdir}/*.so.*
|
||||
|
||||
%files doc
|
||||
%defattr(-, root, root)
|
||||
%doc %{_datadir}/doc/%{name}
|
||||
%exclude /%{_datadir}/doc/%{name}/COPYRIGHT*
|
||||
%exclude /%{_datadir}/doc/%{name}/CHANGE*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%dir %{p_libdir}/pkgconfig
|
||||
%{p_mandir}/man3/*
|
||||
%{p_includedir}
|
||||
%{p_libdir}/*.so
|
||||
%{p_libdir}/pkgconfig/mvapich2.pc
|
||||
%{p_libdir}/pkgconfig/openpa.pc
|
||||
|
||||
%files devel-static
|
||||
%defattr(-,root,root)
|
||||
%{p_libdir}/*.a
|
||||
|
||||
%if %{with hpc}
|
||||
%files macros-devel
|
||||
%defattr(-,root,root)
|
||||
%config %{_rpmmacrodir}/macros.hpc-mvapich2
|
||||
%endif # with hpc
|
||||
|
||||
%endif # !testsuite
|
||||
|
||||
%changelog
|
103
pass-correct-size-to-snprintf.patch
Normal file
103
pass-correct-size-to-snprintf.patch
Normal file
@ -0,0 +1,103 @@
|
||||
diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-mvapich2-2.3.7-1/src/mpid/ch3/channels/common/src/affinity/hwloc_bind.c ./src/mpid/ch3/channels/common/src/affinity/hwloc_bind.c
|
||||
--- ../orig-mvapich2-2.3.7-1/src/mpid/ch3/channels/common/src/affinity/hwloc_bind.c 2022-05-16 18:58:22.000000000 +0200
|
||||
+++ ./src/mpid/ch3/channels/common/src/affinity/hwloc_bind.c 2022-06-29 15:07:17.700058168 +0200
|
||||
@@ -2107,7 +2107,7 @@
|
||||
for (i = 0; i < g_smpi.num_local_nodes; ++i) {
|
||||
hwloc_bitmap_clr(*free_sock_cpuset, local_core_ids[i]);
|
||||
}
|
||||
- hwloc_bitmap_snprintf(cpu_str, 128, *free_sock_cpuset);
|
||||
+ hwloc_bitmap_snprintf(cpu_str, sizeof(cpu_str), *free_sock_cpuset);
|
||||
PRINT_DEBUG(DEBUG_INIT_verbose, "Free sock_cpuset = %s\n", cpu_str);
|
||||
}
|
||||
|
||||
@@ -3190,11 +3190,11 @@
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
curr = count;
|
||||
for (k = 0; k < num_app_threads; k++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d,", mv2_core_map[curr]);
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d,", mv2_core_map[curr]);
|
||||
curr = (curr + 1) % num_pu;
|
||||
}
|
||||
mapping [--j] = '\0';
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, ":");
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, ":");
|
||||
count = (count + hw_threads_per_core) % num_pu;
|
||||
}
|
||||
} else if (mv2_hybrid_binding_policy == HYBRID_LINEAR) {
|
||||
@@ -3203,14 +3203,14 @@
|
||||
* resources */
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
for (k = 0; k < num_app_threads; k++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d,", mv2_core_map[curr]);
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d,", mv2_core_map[curr]);
|
||||
|
||||
curr = ((curr + hw_threads_per_core) >= num_pu) ?
|
||||
((curr + hw_threads_per_core+ ++step) % num_pu) :
|
||||
(curr + hw_threads_per_core) % num_pu;
|
||||
}
|
||||
mapping [--j] = '\0';
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, ":");
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, ":");
|
||||
}
|
||||
} else if (mv2_hybrid_binding_policy == HYBRID_SPREAD) {
|
||||
#if defined(CHANNEL_MRAIL)
|
||||
@@ -3232,12 +3232,12 @@
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
for (k = curr; k < curr+chunk; k++) {
|
||||
for (l = 0; l < hw_threads_per_core; l++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d,",
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d,",
|
||||
mv2_core_map[k * hw_threads_per_core + l]);
|
||||
}
|
||||
}
|
||||
mapping [--j] = '\0';
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, ":");
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, ":");
|
||||
curr = (curr + chunk) % size;
|
||||
}
|
||||
} else {
|
||||
@@ -3252,11 +3252,11 @@
|
||||
for (i = 0; i < num_sockets; i++) {
|
||||
for (k = curr; k < curr+ranks_per_sock; k++) {
|
||||
for (l = 0; l < hw_threads_per_core; l++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d,",
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d,",
|
||||
mv2_core_map[k * hw_threads_per_core + l]);
|
||||
}
|
||||
mapping [--j] = '\0';
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, ":");
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, ":");
|
||||
}
|
||||
curr = (curr + ((num_pu_per_socket/hw_threads_per_core) * chunk)) % size;
|
||||
}
|
||||
@@ -3265,7 +3265,7 @@
|
||||
/* Bunch mapping: Bind each MPI rank to a single phyical core of first
|
||||
* socket followed by second secket */
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d:", mv2_core_map[k]);
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d:", mv2_core_map[k]);
|
||||
k = (k + hw_threads_per_core) % size;
|
||||
}
|
||||
} else if (mv2_hybrid_binding_policy == HYBRID_SCATTER) {
|
||||
@@ -3283,7 +3283,7 @@
|
||||
return MPI_ERR_OTHER;
|
||||
}
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d:", mv2_core_map[k]);
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d:", mv2_core_map[k]);
|
||||
k = (i % num_sockets == 0) ?
|
||||
(k + num_pu_per_socket) % size :
|
||||
(k + num_pu_per_socket + hw_threads_per_core) % size;
|
||||
@@ -3315,10 +3315,10 @@
|
||||
/* NUMA mapping: Bind consecutive MPI ranks to different NUMA domains in
|
||||
* round-robin fashion. */
|
||||
for (i = 0; i < local_procs; i++) {
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, "%d,",
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, "%d,",
|
||||
mv2_core_map_per_numa[node_base_pu+node_offset]);
|
||||
mapping [--j] = '\0';
|
||||
- j += snprintf (mapping+j, _POSIX2_LINE_MAX, ":");
|
||||
+ j += snprintf (mapping+j, sizeof(mapping)-j, ":");
|
||||
node_base_pu = (node_base_pu + num_pu_per_numanode) % size;
|
||||
node_offset = (node_base_pu == 0) ?
|
||||
(node_offset + ((hw_threads_per_core > 0) ? hw_threads_per_core : 1)) :
|
20
psm-add-missing-declaration.patch
Normal file
20
psm-add-missing-declaration.patch
Normal file
@ -0,0 +1,20 @@
|
||||
commit 54cb73337039c22aed5b2b4ee7b19aeb8df33b2c
|
||||
Author: Nicolas Morey <nmorey@suse.com>
|
||||
Date: Thu Sep 5 10:11:46 2024 +0200
|
||||
|
||||
psm: add missing declaration
|
||||
|
||||
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
||||
|
||||
diff --git src/mpid/ch3/channels/psm/src/psm_entry.c src/mpid/ch3/channels/psm/src/psm_entry.c
|
||||
index 125194750a0f..4ff539b65635 100755
|
||||
--- src/mpid/ch3/channels/psm/src/psm_entry.c
|
||||
+++ src/mpid/ch3/channels/psm/src/psm_entry.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <upmi.h>
|
||||
#include "coll_shmem.h"
|
||||
extern int g_mv2_num_cpus;
|
||||
+extern int MPIDI_Get_num_nodes();
|
||||
|
||||
volatile unsigned int MPIDI_CH3I_progress_completion_count = 0; //ODOT: what is this ?
|
||||
volatile int MPIDI_CH3I_progress_blocked = FALSE;
|
110
reproducible.patch
Normal file
110
reproducible.patch
Normal file
@ -0,0 +1,110 @@
|
||||
commit bf7afdf34ad71b1e644dda34053e491653ca59e7
|
||||
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
|
||||
Date: Mon Mar 25 11:12:56 2019 +0100
|
||||
|
||||
reproducible
|
||||
|
||||
Sort input file list so that mpich builds in a reproducible way
|
||||
in spite of indeterministic filesystem readdir order
|
||||
|
||||
See https://reproducible-builds.org/ for why this is good.
|
||||
|
||||
Without this patch, README.envvar, /usr/lib64/mpi/gcc/mpich/bin/mpivars
|
||||
and other output files varied between builds.
|
||||
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
|
||||
Also remove any unreproducible timestamps from generated files.
|
||||
|
||||
diff --git maint/extractcvars.in maint/extractcvars.in
|
||||
index b627a6f8d937..879de7bf6d5a 100755
|
||||
--- maint/extractcvars.in
|
||||
+++ maint/extractcvars.in
|
||||
@@ -125,7 +125,7 @@ foreach my $p (@cvars) {
|
||||
print "Categories include: \n".Dumper(@categories) if $debug;
|
||||
print "Cvars include :\n".Dumper(@cvars)."\n" if $debug;
|
||||
|
||||
-my $run_timestamp = localtime();
|
||||
+my $run_timestamp = localtime($ENV{"SOURCE_DATE_EPOCH"} || time);
|
||||
my $uc_ns = uc($ns);
|
||||
|
||||
# Setup output files
|
||||
@@ -594,7 +594,7 @@ sub ExpandDir {
|
||||
my @subdirs = ();
|
||||
my $DIR_HANDLE;
|
||||
opendir $DIR_HANDLE, "$dir" or die "Error: open directory $dir -- $!\n";
|
||||
- while (my $filename = readdir $DIR_HANDLE) {
|
||||
+ for my $filename (sort readdir $DIR_HANDLE) {
|
||||
if ($filename =~ /^\./) {
|
||||
next;
|
||||
} elsif (-d "$dir/$filename") {
|
||||
diff --git maint/extractfixme.in maint/extractfixme.in
|
||||
index 6b2567f037ed..7636fad296b8 100644
|
||||
--- maint/extractfixme.in
|
||||
+++ maint/extractfixme.in
|
||||
@@ -114,7 +114,7 @@ sub ExpandDir {
|
||||
my @otherdirs = ();
|
||||
my @files = ();
|
||||
opendir DIR, "$dir";
|
||||
- while ($filename = readdir DIR) {
|
||||
+ for $filename (sort readdir DIR) {
|
||||
if ($filename =~ /^\./ || $filename eq ".svn") {
|
||||
next;
|
||||
}
|
||||
diff --git maint/extractstrings.in maint/extractstrings.in
|
||||
index 4e8a599c89ca..449a8c007499 100644
|
||||
--- maint/extractstrings.in
|
||||
+++ maint/extractstrings.in
|
||||
@@ -73,7 +73,7 @@ sub GetFileNamesInDirectory {
|
||||
my @filesFound = ();
|
||||
|
||||
opendir DIR, $dir || die "Could not open $dir\n";
|
||||
- while (my $file = readdir DIR) {
|
||||
+ for my $file (sort readdir DIR) {
|
||||
if (! -f "$dir/$file") { next; }
|
||||
if ($file =~ /^\.$/ || $file =~ /^\.\.$/) { next; }
|
||||
if ($file =~ /$pattern/) {
|
||||
@@ -246,7 +246,7 @@ sub processDirs {
|
||||
my @dirs = ();
|
||||
# Find the directories
|
||||
opendir DIR, "$dir" || die "Cannot open $dir\n";
|
||||
- while (my $file = readdir DIR) {
|
||||
+ for my $file (sort readdir DIR) {
|
||||
if (! -d "$dir/$file") { next; }
|
||||
if ($file =~ /^\./) { next; }
|
||||
if ($file =~ /^.svn/) { next; }
|
||||
@@ -273,7 +273,7 @@ sub processDirsAndAction {
|
||||
my @dirs = ();
|
||||
# Find the directories
|
||||
opendir DIR, "$dir" || die "Cannot open $dir\n";
|
||||
- while (my $file = readdir DIR) {
|
||||
+ for my $file (sort readdir DIR) {
|
||||
if (! -d "$dir/$file") { next; }
|
||||
if ($file =~ /^\./) { next; }
|
||||
if ($file =~ /^.svn/) { next; }
|
||||
diff --git maint/gen_subcfg_m4 maint/gen_subcfg_m4
|
||||
index 80654263401d..34cb19ed0649 100755
|
||||
--- maint/gen_subcfg_m4
|
||||
+++ maint/gen_subcfg_m4
|
||||
@@ -118,7 +118,7 @@ while (my $dir = pop @dirstack) {
|
||||
# the stack to continue the traversal
|
||||
opendir DH, $dir
|
||||
or die "unable to open dir='$dir', stopped";
|
||||
- my @contents = readdir DH;
|
||||
+ my @contents = sort readdir DH;
|
||||
foreach my $f (@contents) {
|
||||
# avoid endless recursion
|
||||
next if $f eq "." || $f eq "..";
|
||||
diff --git maint/getcoverage.in maint/getcoverage.in
|
||||
index c9c69f299261..f4fc35be72f6 100644
|
||||
--- maint/getcoverage.in
|
||||
+++ maint/getcoverage.in
|
||||
@@ -779,7 +779,7 @@ sub ExpandDir {
|
||||
my @otherdirs = ();
|
||||
my @files = ();
|
||||
opendir DIR, "$dir";
|
||||
- while ($filename = readdir DIR) {
|
||||
+ for $filename (sort readdir DIR) {
|
||||
if ($filename =~ /^\./ || $filename eq ".svn") {
|
||||
next;
|
||||
}
|
20
util-add-missing-include.patch
Normal file
20
util-add-missing-include.patch
Normal file
@ -0,0 +1,20 @@
|
||||
commit e0028839a9bee6996816ae5be43f8a1a7faa6580
|
||||
Author: Nicolas Morey <nmorey@suse.com>
|
||||
Date: Thu Sep 5 10:00:12 2024 +0200
|
||||
|
||||
util: add missing include
|
||||
|
||||
Signed-off-by: Nicolas Morey <nmorey@suse.com>
|
||||
|
||||
diff --git src/util/mem/mpit.c src/util/mem/mpit.c
|
||||
index 19c2caf27cb3..17f6e6115291 100644
|
||||
--- src/util/mem/mpit.c
|
||||
+++ src/util/mem/mpit.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <stdio.h>
|
||||
#include <search.h>
|
||||
#include <stdint.h>
|
||||
+#include <sys/shm.h>
|
||||
|
||||
#ifdef USE_MEMORY_TRACING
|
||||
# define mpit_malloc(a, line, file) \
|
Loading…
Reference in New Issue
Block a user