commit 035e4e4291a3d9279bc0d31873f7d14210476a765bea1f63e1aeed4f1f5aa52e Author: Nicolas Morey-Chaisemartin Date: Thu Jun 8 08:50:26 2017 +0000 OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=4 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/mpivars.csh b/mpivars.csh new file mode 100644 index 0000000..4d78e32 --- /dev/null +++ b/mpivars.csh @@ -0,0 +1,9 @@ +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 diff --git a/mpivars.sh b/mpivars.sh new file mode 100644 index 0000000..cc31227 --- /dev/null +++ b/mpivars.sh @@ -0,0 +1,16 @@ +case $PATH in + *prefix/bin*) + true + ;; + *) + PATH=prefix/bin:$PATH +esac + + +case $MANPATH in + *prefix/share/man*) + true + ;; + *) + MANPATH=prefix/share/man:$MANPATH +esac diff --git a/mvapich-s390_get_cycles.patch b/mvapich-s390_get_cycles.patch new file mode 100644 index 0000000..e1a7640 --- /dev/null +++ b/mvapich-s390_get_cycles.patch @@ -0,0 +1,23 @@ +--- + src/mpid/ch3/channels/common/include/mv2_clock.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: src/mpid/ch3/channels/common/include/mv2_clock.h +=================================================================== +--- src/mpid/ch3/channels/common/include/mv2_clock.h.orig ++++ src/mpid/ch3/channels/common/include/mv2_clock.h +@@ -82,6 +82,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 diff --git a/mvapich2-2.2.tar.gz b/mvapich2-2.2.tar.gz new file mode 100644 index 0000000..4ce28c2 --- /dev/null +++ b/mvapich2-2.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:791a6fc2b23de63b430b3e598bf05b1b25b82ba8bf7e0622fc81ba593b3bb131 +size 16422868 diff --git a/mvapich2-psm.changes b/mvapich2-psm.changes new file mode 100644 index 0000000..467e7b4 --- /dev/null +++ b/mvapich2-psm.changes @@ -0,0 +1,468 @@ +------------------------------------------------------------------- +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. 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 + diff --git a/mvapich2-psm.spec b/mvapich2-psm.spec new file mode 100644 index 0000000..51aa887 --- /dev/null +++ b/mvapich2-psm.spec @@ -0,0 +1,247 @@ +# +# spec file for package mvapich2-psm +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# 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 http://bugs.opensuse.org/ +# + + +############################################################################# +# # +# NOTE: If you modify this spec file, or the .changes file you MUST run # +# 'bash ./pre_checkin.sh' to create spec and changes for # +# mvapich2-testuite. # +# # +############################################################################# + +Name: mvapich2-psm +Summary: OSU MVAPICH2 MPI package +License: BSD-3-Clause +Group: Development/Libraries/Parallel +Version: 2.2 +Release: 0 +Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz +Source1: mpivars.sh +Source2: mpivars.csh +Patch0: mvapich-s390_get_cycles.patch +Patch1: mvapich2-pthread_yield.patch +Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: autoconf +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: automake +BuildRequires: bison +BuildRequires: gcc-c++ +BuildRequires: gcc-fortran +BuildRequires: libibmad-devel +# For transition to rdma-core make sure the new packages are selected +# Once the transition is made the version check can be removed +BuildRequires: libibumad-devel >= 12 +BuildRequires: libibverbs-devel >= 12 +BuildRequires: librdmacm-devel >= 12 +%ifnarch s390 s390x +BuildRequires: libnuma-devel +%endif +BuildRequires: libtool +BuildRequires: libtool +BuildRequires: mpi-selector +BuildRequires: python-devel +BuildRequires: sysfsutils +BuildRequires: xorg-x11-devel +# mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers +ExcludeArch: aarch64 armv7hl + +%if "%{name}" == "mvapich2-psm" +ExclusiveArch: %ix86 x86_64 +BuildRequires: infinipath-psm-devel +%ifarch x86_64 +BuildRequires: libpsm2-devel +%endif +%endif + +Requires: mpi-selector + +%define _prefix /usr/%_lib/mpi/gcc/mvapich2 +%define _libexecdir %{_prefix}/%{_lib} +%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks + +%description +This is an MPI-3 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" + +%package devel +Summary: OSU MVAPICH2 MPI package +Group: Development/Libraries/Parallel +Requires: %{name} = %{version} +Requires: libibumad-devel +Requires: libibverbs-devel +Requires: librdmacm-devel +%if "%{name}" == "mvapich2-psm" +Requires: infinipath-psm-devel +%ifarch x86_64 +Requires: libpsm2-devel +%endif +%endif + +%description devel +This is an MPI-2 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + + + +%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 + +%endif + +%prep +%setup -q -n mvapich2-%{version}%{?rc_ver} +%patch0 +%patch1 +cp /usr/share/automake*/config.* . + +%build +#./autogen.sh +%configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir --sysconfdir=%_sysconfdir --libexecdir=%{_libexecdir} \ +%if "%{name}" == "mvapich2-psm" + --with-device=ch3:psm \ +%endif + --without-mpe +make %{?_smp_mflags} V=1 + +%if "%{name}" == "mvapich2-testsuite" +%check +make V=1 check +%endif + +%install +make DESTDIR=%{buildroot} V=1 install +# make and install mpivars files +sed 's,prefix,%_prefix,g' %{S:1} > %{buildroot}%{_bindir}/mpivars.sh +sed 's,prefix,%_prefix,g' %{S:2} > %{buildroot}%{_bindir}/mpivars.csh +rm -f %{buildroot}%{_libdir}/libfmpich.la \ + %{buildroot}%{_libdir}/libmpich.la \ + %{buildroot}%{_libdir}/libmpichcxx.la \ + %{buildroot}%{_libdir}/libmpichf90.la \ + %{buildroot}%{_libdir}/libmpl.la \ + %{buildroot}%{_libdir}/libopa.la \ + %{buildroot}%{_libdir}/libmpi.la \ + %{buildroot}%{_libdir}/libmpicxx.la \ + %{buildroot}%{_libdir}/libmpifort.la + +%if "%{name}" == "mvapich2-testsuite" +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_mandir}/man3/* +rm -rf %{buildroot}%{_libdir}/*.so +rm -rf %{buildroot}%{_libdir}/pkgconfig/mvapich2.pc +rm -rf %{buildroot}%{_libdir}/pkgconfig/openpa.pc + +rm -rf %{buildroot}%{_libdir}/*.a +%endif + +install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2 +install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2 + +%if "%{name}" != "mvapich2-testsuite" +mkdir -p %{buildroot}/usr/share/modules/gnu-mvapich2 + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/%{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 %{_bindir} +prepend-path INCLUDE %{_includedir} +prepend-path INCLUDE %{_libdir} +prepend-path MANPATH %{_mandir} +prepend-path LD_LIBRARY_PATH %{_libdir} + +EOF + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/.version +#%%Module1.0 +set ModulesVersion "%{version}" + +EOF +%endif + +%post +/sbin/ldconfig +/usr/bin/mpi-selector \ + --register %{name}-%{version} \ + --source-dir %{_bindir} \ + --yes + +%postun +/sbin/ldconfig +/usr/bin/mpi-selector --unregister %{name}-%{version} --yes --silent + +%files +%defattr(-, root, root) +%doc %{_datadir}/doc +%dir /usr/%_lib/mpi +%dir /usr/%_lib/mpi/gcc +%dir /usr/%_lib/mpi/gcc/mvapich2 +%dir %{_prefix} +%dir %{_bindir} +%dir %{_datadir} +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%dir /usr/share/modules +%endif +%if "%{name}" == "mvapich2" +%dir %{_includedir} +%endif +%dir %{_mandir} +%dir %{_mandir}/man1 +%dir %{_mandir}/man3 +%dir %{_libdir} +%dir %{_libexecdir} +%{_bindir}/* +%{_libexecdir}/osu-micro-benchmarks +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +/usr/share/modules/gnu-mvapich2 +%endif +%{_mandir}/man1/* +%{_libdir}/*.so.* + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%files devel +%defattr(-,root,root) +%dir %{_libdir}/pkgconfig +%{_mandir}/man3/* +%{_includedir} +%{_libdir}/*.so +%{_libdir}/pkgconfig/mvapich2.pc +%{_libdir}/pkgconfig/openpa.pc + +%files devel-static +%defattr(-,root,root) +%{_libdir}/*.a + +%endif + +%changelog diff --git a/mvapich2-pthread_yield.patch b/mvapich2-pthread_yield.patch new file mode 100644 index 0000000..5e48d54 --- /dev/null +++ b/mvapich2-pthread_yield.patch @@ -0,0 +1,20 @@ +From: Philipp Thomas +Date: 2014-04-23 17:44:45+02:00 +Subject: Define GNU_SOURCE for pthrea_yield + +--- + src/openpa/test/opa_test.h | 1 + + 1 file changed, 1 insertion(+) + +Index: src/openpa/test/opa_test.h +=================================================================== +--- src/openpa/test/opa_test.h.orig 2014-03-22 22:56:53.000000000 +0100 ++++ src/openpa/test/opa_test.h 2014-04-23 17:43:18.697310735 +0200 +@@ -20,6 +20,7 @@ + #include + #include + #if defined(OPA_HAVE_PTHREAD_H) ++# define GNU_SOURCE + # include + #endif /* HAVE_PTHREAD_H */ + diff --git a/mvapich2-testsuite.changes b/mvapich2-testsuite.changes new file mode 100644 index 0000000..467e7b4 --- /dev/null +++ b/mvapich2-testsuite.changes @@ -0,0 +1,468 @@ +------------------------------------------------------------------- +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. 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 + diff --git a/mvapich2-testsuite.spec b/mvapich2-testsuite.spec new file mode 100644 index 0000000..0d94098 --- /dev/null +++ b/mvapich2-testsuite.spec @@ -0,0 +1,247 @@ +# +# spec file for package mvapich2-testsuite +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# 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 http://bugs.opensuse.org/ +# + + +############################################################################# +# # +# NOTE: If you modify this spec file, or the .changes file you MUST run # +# 'bash ./pre_checkin.sh' to create spec and changes for # +# mvapich2-testuite. # +# # +############################################################################# + +Name: mvapich2-testsuite +Summary: OSU MVAPICH2 MPI package +License: BSD-3-Clause +Group: Development/Libraries/Parallel +Version: 2.2 +Release: 0 +Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz +Source1: mpivars.sh +Source2: mpivars.csh +Patch0: mvapich-s390_get_cycles.patch +Patch1: mvapich2-pthread_yield.patch +Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: autoconf +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: automake +BuildRequires: bison +BuildRequires: gcc-c++ +BuildRequires: gcc-fortran +BuildRequires: libibmad-devel +# For transition to rdma-core make sure the new packages are selected +# Once the transition is made the version check can be removed +BuildRequires: libibumad-devel >= 12 +BuildRequires: libibverbs-devel >= 12 +BuildRequires: librdmacm-devel >= 12 +%ifnarch s390 s390x +BuildRequires: libnuma-devel +%endif +BuildRequires: libtool +BuildRequires: libtool +BuildRequires: mpi-selector +BuildRequires: python-devel +BuildRequires: sysfsutils +BuildRequires: xorg-x11-devel +# mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers +ExcludeArch: aarch64 armv7hl + +%if "%{name}" == "mvapich2-psm" +ExclusiveArch: %ix86 x86_64 +BuildRequires: infinipath-psm-devel +%ifarch x86_64 +BuildRequires: libpsm2-devel +%endif +%endif + +Requires: mpi-selector + +%define _prefix /usr/%_lib/mpi/gcc/mvapich2 +%define _libexecdir %{_prefix}/%{_lib} +%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks + +%description +This is an MPI-3 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" + +%package devel +Summary: OSU MVAPICH2 MPI package +Group: Development/Libraries/Parallel +Requires: %{name} = %{version} +Requires: libibumad-devel +Requires: libibverbs-devel +Requires: librdmacm-devel +%if "%{name}" == "mvapich2-psm" +Requires: infinipath-psm-devel +%ifarch x86_64 +Requires: libpsm2-devel +%endif +%endif + +%description devel +This is an MPI-2 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + + + +%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 + +%endif + +%prep +%setup -q -n mvapich2-%{version}%{?rc_ver} +%patch0 +%patch1 +cp /usr/share/automake*/config.* . + +%build +#./autogen.sh +%configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir --sysconfdir=%_sysconfdir --libexecdir=%{_libexecdir} \ +%if "%{name}" == "mvapich2-psm" + --with-device=ch3:psm \ +%endif + --without-mpe +make %{?_smp_mflags} V=1 + +%if "%{name}" == "mvapich2-testsuite" +%check +make V=1 check +%endif + +%install +make DESTDIR=%{buildroot} V=1 install +# make and install mpivars files +sed 's,prefix,%_prefix,g' %{S:1} > %{buildroot}%{_bindir}/mpivars.sh +sed 's,prefix,%_prefix,g' %{S:2} > %{buildroot}%{_bindir}/mpivars.csh +rm -f %{buildroot}%{_libdir}/libfmpich.la \ + %{buildroot}%{_libdir}/libmpich.la \ + %{buildroot}%{_libdir}/libmpichcxx.la \ + %{buildroot}%{_libdir}/libmpichf90.la \ + %{buildroot}%{_libdir}/libmpl.la \ + %{buildroot}%{_libdir}/libopa.la \ + %{buildroot}%{_libdir}/libmpi.la \ + %{buildroot}%{_libdir}/libmpicxx.la \ + %{buildroot}%{_libdir}/libmpifort.la + +%if "%{name}" == "mvapich2-testsuite" +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_mandir}/man3/* +rm -rf %{buildroot}%{_libdir}/*.so +rm -rf %{buildroot}%{_libdir}/pkgconfig/mvapich2.pc +rm -rf %{buildroot}%{_libdir}/pkgconfig/openpa.pc + +rm -rf %{buildroot}%{_libdir}/*.a +%endif + +install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2 +install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2 + +%if "%{name}" != "mvapich2-testsuite" +mkdir -p %{buildroot}/usr/share/modules/gnu-mvapich2 + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/%{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 %{_bindir} +prepend-path INCLUDE %{_includedir} +prepend-path INCLUDE %{_libdir} +prepend-path MANPATH %{_mandir} +prepend-path LD_LIBRARY_PATH %{_libdir} + +EOF + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/.version +#%%Module1.0 +set ModulesVersion "%{version}" + +EOF +%endif + +%post +/sbin/ldconfig +/usr/bin/mpi-selector \ + --register %{name}-%{version} \ + --source-dir %{_bindir} \ + --yes + +%postun +/sbin/ldconfig +/usr/bin/mpi-selector --unregister %{name}-%{version} --yes --silent + +%files +%defattr(-, root, root) +%doc %{_datadir}/doc +%dir /usr/%_lib/mpi +%dir /usr/%_lib/mpi/gcc +%dir /usr/%_lib/mpi/gcc/mvapich2 +%dir %{_prefix} +%dir %{_bindir} +%dir %{_datadir} +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%dir /usr/share/modules +%endif +%if "%{name}" == "mvapich2" +%dir %{_includedir} +%endif +%dir %{_mandir} +%dir %{_mandir}/man1 +%dir %{_mandir}/man3 +%dir %{_libdir} +%dir %{_libexecdir} +%{_bindir}/* +%{_libexecdir}/osu-micro-benchmarks +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +/usr/share/modules/gnu-mvapich2 +%endif +%{_mandir}/man1/* +%{_libdir}/*.so.* + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%files devel +%defattr(-,root,root) +%dir %{_libdir}/pkgconfig +%{_mandir}/man3/* +%{_includedir} +%{_libdir}/*.so +%{_libdir}/pkgconfig/mvapich2.pc +%{_libdir}/pkgconfig/openpa.pc + +%files devel-static +%defattr(-,root,root) +%{_libdir}/*.a + +%endif + +%changelog diff --git a/mvapich2.changes b/mvapich2.changes new file mode 100644 index 0000000..467e7b4 --- /dev/null +++ b/mvapich2.changes @@ -0,0 +1,468 @@ +------------------------------------------------------------------- +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. 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 + diff --git a/mvapich2.spec b/mvapich2.spec new file mode 100644 index 0000000..a9d2721 --- /dev/null +++ b/mvapich2.spec @@ -0,0 +1,247 @@ +# +# spec file for package mvapich2 +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# 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 http://bugs.opensuse.org/ +# + + +############################################################################# +# # +# NOTE: If you modify this spec file, or the .changes file you MUST run # +# 'bash ./pre_checkin.sh' to create spec and changes for # +# mvapich2-testuite. # +# # +############################################################################# + +Name: mvapich2 +Summary: OSU MVAPICH2 MPI package +License: BSD-3-Clause +Group: Development/Libraries/Parallel +Version: 2.2 +Release: 0 +Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz +Source1: mpivars.sh +Source2: mpivars.csh +Patch0: mvapich-s390_get_cycles.patch +Patch1: mvapich2-pthread_yield.patch +Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: autoconf +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: automake +BuildRequires: bison +BuildRequires: gcc-c++ +BuildRequires: gcc-fortran +BuildRequires: libibmad-devel +# For transition to rdma-core make sure the new packages are selected +# Once the transition is made the version check can be removed +BuildRequires: libibumad-devel >= 12 +BuildRequires: libibverbs-devel >= 12 +BuildRequires: librdmacm-devel >= 12 +%ifnarch s390 s390x +BuildRequires: libnuma-devel +%endif +BuildRequires: libtool +BuildRequires: libtool +BuildRequires: mpi-selector +BuildRequires: python-devel +BuildRequires: sysfsutils +BuildRequires: xorg-x11-devel +# mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers +ExcludeArch: aarch64 armv7hl + +%if "%{name}" == "mvapich2-psm" +ExclusiveArch: %ix86 x86_64 +BuildRequires: infinipath-psm-devel +%ifarch x86_64 +BuildRequires: libpsm2-devel +%endif +%endif + +Requires: mpi-selector + +%define _prefix /usr/%_lib/mpi/gcc/mvapich2 +%define _libexecdir %{_prefix}/%{_lib} +%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks + +%description +This is an MPI-3 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" + +%package devel +Summary: OSU MVAPICH2 MPI package +Group: Development/Libraries/Parallel +Requires: %{name} = %{version} +Requires: libibumad-devel +Requires: libibverbs-devel +Requires: librdmacm-devel +%if "%{name}" == "mvapich2-psm" +Requires: infinipath-psm-devel +%ifarch x86_64 +Requires: libpsm2-devel +%endif +%endif + +%description devel +This is an MPI-2 implementation which includes all MPI-1 features. It +is based on MPICH2 and MVICH. + + + +%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 + +%endif + +%prep +%setup -q -n mvapich2-%{version}%{?rc_ver} +%patch0 +%patch1 +cp /usr/share/automake*/config.* . + +%build +#./autogen.sh +%configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir --sysconfdir=%_sysconfdir --libexecdir=%{_libexecdir} \ +%if "%{name}" == "mvapich2-psm" + --with-device=ch3:psm \ +%endif + --without-mpe +make %{?_smp_mflags} V=1 + +%if "%{name}" == "mvapich2-testsuite" +%check +make V=1 check +%endif + +%install +make DESTDIR=%{buildroot} V=1 install +# make and install mpivars files +sed 's,prefix,%_prefix,g' %{S:1} > %{buildroot}%{_bindir}/mpivars.sh +sed 's,prefix,%_prefix,g' %{S:2} > %{buildroot}%{_bindir}/mpivars.csh +rm -f %{buildroot}%{_libdir}/libfmpich.la \ + %{buildroot}%{_libdir}/libmpich.la \ + %{buildroot}%{_libdir}/libmpichcxx.la \ + %{buildroot}%{_libdir}/libmpichf90.la \ + %{buildroot}%{_libdir}/libmpl.la \ + %{buildroot}%{_libdir}/libopa.la \ + %{buildroot}%{_libdir}/libmpi.la \ + %{buildroot}%{_libdir}/libmpicxx.la \ + %{buildroot}%{_libdir}/libmpifort.la + +%if "%{name}" == "mvapich2-testsuite" +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_mandir}/man3/* +rm -rf %{buildroot}%{_libdir}/*.so +rm -rf %{buildroot}%{_libdir}/pkgconfig/mvapich2.pc +rm -rf %{buildroot}%{_libdir}/pkgconfig/openpa.pc + +rm -rf %{buildroot}%{_libdir}/*.a +%endif + +install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2 +install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2 + +%if "%{name}" != "mvapich2-testsuite" +mkdir -p %{buildroot}/usr/share/modules/gnu-mvapich2 + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/%{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 %{_bindir} +prepend-path INCLUDE %{_includedir} +prepend-path INCLUDE %{_libdir} +prepend-path MANPATH %{_mandir} +prepend-path LD_LIBRARY_PATH %{_libdir} + +EOF + +cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/.version +#%%Module1.0 +set ModulesVersion "%{version}" + +EOF +%endif + +%post +/sbin/ldconfig +/usr/bin/mpi-selector \ + --register %{name}-%{version} \ + --source-dir %{_bindir} \ + --yes + +%postun +/sbin/ldconfig +/usr/bin/mpi-selector --unregister %{name}-%{version} --yes --silent + +%files +%defattr(-, root, root) +%doc %{_datadir}/doc +%dir /usr/%_lib/mpi +%dir /usr/%_lib/mpi/gcc +%dir /usr/%_lib/mpi/gcc/mvapich2 +%dir %{_prefix} +%dir %{_bindir} +%dir %{_datadir} +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%dir /usr/share/modules +%endif +%if "%{name}" == "mvapich2" +%dir %{_includedir} +%endif +%dir %{_mandir} +%dir %{_mandir}/man1 +%dir %{_mandir}/man3 +%dir %{_libdir} +%dir %{_libexecdir} +%{_bindir}/* +%{_libexecdir}/osu-micro-benchmarks +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +/usr/share/modules/gnu-mvapich2 +%endif +%{_mandir}/man1/* +%{_libdir}/*.so.* + +%if "%{name}" == "mvapich2" || "%{name}" == "mvapich2-psm" +%files devel +%defattr(-,root,root) +%dir %{_libdir}/pkgconfig +%{_mandir}/man3/* +%{_includedir} +%{_libdir}/*.so +%{_libdir}/pkgconfig/mvapich2.pc +%{_libdir}/pkgconfig/openpa.pc + +%files devel-static +%defattr(-,root,root) +%{_libdir}/*.a + +%endif + +%changelog diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 0000000..56b9821 --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# This script has to be run prior to a check-in if changes were done +# to spec and/or changes +sed -e "s,^\(Name:.*mvapich2\),\1-testsuite," mvapich2.spec > mvapich2-testsuite.spec +sed -e "s,^\(Name:.*mvapich2\),\1-psm," mvapich2.spec > mvapich2-psm.spec +cp mvapich2.changes mvapich2-testsuite.changes +cp mvapich2.changes mvapich2-psm.changes + +osc service localrun format_spec_file +