SHA256
1
0
forked from pool/mvapich2

Accepting request 506223 from home:NMoreyChaisemartin:branches:science:HPC

- Use _multibuild to build the various mvapich2-flavours

OBS-URL: https://build.opensuse.org/request/show/506223
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=11
This commit is contained in:
Nicolas Morey-Chaisemartin 2017-06-26 10:20:27 +00:00 committed by Git OBS Bridge
parent 56e024e801
commit 7e231e1c32
8 changed files with 38 additions and 1519 deletions

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>testsuite</package>
<package>psm</package>
</multibuild>

View File

@ -1,495 +0,0 @@
-------------------------------------------------------------------
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. 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

View File

@ -1,245 +0,0 @@
#
# 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. #
# #
#############################################################################
%if "%{name}" == "mvapich2-psm"
%define alt_pack mvapich2
%else
%define alt_pack mvapich2-psm
%endif
%define _prefix /usr/%_lib/mpi/gcc/mvapich2
%define _libexecdir %{_prefix}/%{_lib}
%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks
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: mvapich2-s390_get_cycles.patch
Patch1: mvapich2-pthread_yield.patch
Patch2: mvapich2-arm-support.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: infiniband-diags-devel
BuildRequires: libibumad-devel
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
%ifnarch s390 s390x armv7hl
BuildRequires: libnuma-devel
%endif
BuildRequires: libtool
BuildRequires: libtool
BuildRequires: mpi-selector
BuildRequires: python-devel
BuildRequires: sysfsutils
BuildRequires: xorg-x11-devel
%if "%{name}" == "mvapich2-psm"
ExclusiveArch: %ix86 x86_64
BuildRequires: infinipath-psm-devel
%ifarch x86_64
BuildRequires: libpsm2-devel
%endif
%endif
Requires: mpi-selector
Conflicts: %{alt_pack}
%description
This is an MPI-3 implementation which includes all MPI-1 features. It
is based on MPICH2 and MVICH.
%if "%{name}" != "mvapich2-testsuite"
%package devel
Summary: OSU MVAPICH2 MPI package
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
Requires: libibumad-devel
Requires: libibverbs-devel
Requires: librdmacm-devel
Conflicts: %{alt_pack}-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}
Conflicts: %{alt_pack}-devel-static
%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
%patch2
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
install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2
install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2
%if "%{name}" == "mvapich2-testsuite"
# Remove everything from testsuite package
# It is all contained by mvapich2 packages
rm -rf %{buildroot}/*
%endif
%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
%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}
%dir /usr/share/modules
%if "%{name}" == "mvapich2"
%dir %{_includedir}
%endif
%dir %{_mandir}
%dir %{_mandir}/man1
%dir %{_mandir}/man3
%dir %{_libdir}
%dir %{_libexecdir}
%{_bindir}/*
%{_libexecdir}/osu-micro-benchmarks
/usr/share/modules/gnu-mvapich2
%{_mandir}/man1/*
%{_libdir}/*.so.*
%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
%else # mvapich2-testsuite
# Nothing to package here.
%endif
%changelog

View File

@ -1,495 +0,0 @@
-------------------------------------------------------------------
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. 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

View File

@ -1,245 +0,0 @@
#
# 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. #
# #
#############################################################################
%if "%{name}" == "mvapich2-psm"
%define alt_pack mvapich2
%else
%define alt_pack mvapich2-psm
%endif
%define _prefix /usr/%_lib/mpi/gcc/mvapich2
%define _libexecdir %{_prefix}/%{_lib}
%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks
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: mvapich2-s390_get_cycles.patch
Patch1: mvapich2-pthread_yield.patch
Patch2: mvapich2-arm-support.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: infiniband-diags-devel
BuildRequires: libibumad-devel
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
%ifnarch s390 s390x armv7hl
BuildRequires: libnuma-devel
%endif
BuildRequires: libtool
BuildRequires: libtool
BuildRequires: mpi-selector
BuildRequires: python-devel
BuildRequires: sysfsutils
BuildRequires: xorg-x11-devel
%if "%{name}" == "mvapich2-psm"
ExclusiveArch: %ix86 x86_64
BuildRequires: infinipath-psm-devel
%ifarch x86_64
BuildRequires: libpsm2-devel
%endif
%endif
Requires: mpi-selector
Conflicts: %{alt_pack}
%description
This is an MPI-3 implementation which includes all MPI-1 features. It
is based on MPICH2 and MVICH.
%if "%{name}" != "mvapich2-testsuite"
%package devel
Summary: OSU MVAPICH2 MPI package
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
Requires: libibumad-devel
Requires: libibverbs-devel
Requires: librdmacm-devel
Conflicts: %{alt_pack}-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}
Conflicts: %{alt_pack}-devel-static
%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
%patch2
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
install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2
install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2
%if "%{name}" == "mvapich2-testsuite"
# Remove everything from testsuite package
# It is all contained by mvapich2 packages
rm -rf %{buildroot}/*
%endif
%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
%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}
%dir /usr/share/modules
%if "%{name}" == "mvapich2"
%dir %{_includedir}
%endif
%dir %{_mandir}
%dir %{_mandir}/man1
%dir %{_mandir}/man3
%dir %{_libdir}
%dir %{_libexecdir}
%{_bindir}/*
%{_libexecdir}/osu-micro-benchmarks
/usr/share/modules/gnu-mvapich2
%{_mandir}/man1/*
%{_libdir}/*.so.*
%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
%else # mvapich2-testsuite
# Nothing to package here.
%endif
%changelog

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
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

View File

@ -15,25 +15,23 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%nil
#############################################################################
# #
# 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. #
# #
#############################################################################
%if "%{name}" == "mvapich2-psm"
%define alt_pack mvapich2
%if "%{flavor}" == ""
%define pack_suff %{nil}
%else
%define alt_pack mvapich2-psm
%define pack_suff -%{flavor}
%endif
%if "%flavor" == "testsuite"
%define testsuite 1
%endif
%define _prefix /usr/%_lib/mpi/gcc/mvapich2
%define _libexecdir %{_prefix}/%{_lib}
%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks
Name: mvapich2
Name: mvapich2%{pack_suff}
Summary: OSU MVAPICH2 MPI package
License: BSD-3-Clause
Group: Development/Libraries/Parallel
@ -42,6 +40,7 @@ Release: 0
Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz
Source1: mpivars.sh
Source2: mpivars.csh
Source3: _multibuild
Patch0: mvapich2-s390_get_cycles.patch
Patch1: mvapich2-pthread_yield.patch
Patch2: mvapich2-arm-support.patch
@ -67,7 +66,7 @@ BuildRequires: mpi-selector
BuildRequires: python-devel
BuildRequires: sysfsutils
BuildRequires: xorg-x11-devel
%if "%{name}" == "mvapich2-psm"
%if "%{flavor}" == "psm"
ExclusiveArch: %ix86 x86_64
BuildRequires: infinipath-psm-devel
%ifarch x86_64
@ -76,13 +75,15 @@ BuildRequires: libpsm2-devel
%endif
Requires: mpi-selector
Conflicts: %{alt_pack}
# Meta provides to make sure all flavour conflicts
Provides: mvapich2-internal
Conflicts: otherproviders(mvapich2-internal)
%description
This is an MPI-3 implementation which includes all MPI-1 features. It
is based on MPICH2 and MVICH.
%if "%{name}" != "mvapich2-testsuite"
%if 0%{!?testsuite:1}
%package devel
Summary: OSU MVAPICH2 MPI package
@ -91,13 +92,15 @@ Requires: %{name} = %{version}
Requires: libibumad-devel
Requires: libibverbs-devel
Requires: librdmacm-devel
Conflicts: %{alt_pack}-devel
%if "%{name}" == "mvapich2-psm"
%if "%{flavor}" == "psm"
Requires: infinipath-psm-devel
%ifarch x86_64
Requires: libpsm2-devel
%endif
%endif
# Meta provides to make sure all flavour conflicts
Provides: mvapich2-internal-devel
Conflicts: otherproviders(mvapich2-internal-devel)
%description devel
This is an MPI-2 implementation which includes all MPI-1 features. It
@ -109,13 +112,15 @@ is based on MPICH2 and MVICH.
Summary: OSU MVAPICH2 MPI package - static libraries
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
Conflicts: %{alt_pack}-devel-static
# Meta provides to make sure all flavour conflicts
Provides: mvapich2-internal-devel-static
Conflicts: otherproviders(mvapich2-internal-devel-static)
%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
%endif # ! testsuite
%prep
%setup -q -n mvapich2-%{version}%{?rc_ver}
@ -128,13 +133,13 @@ cp /usr/share/automake*/config.* .
#./autogen.sh
%configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir \
--sysconfdir=%_sysconfdir --libexecdir=%{_libexecdir} \
%if "%{name}" == "mvapich2-psm"
%if "%{flavor}" == "psm"
--with-device=ch3:psm \
%endif
--without-mpe
make %{?_smp_mflags} V=1
%if "%{name}" == "mvapich2-testsuite"
%if 0%{?testsuite}
%check
make V=1 check
%endif
@ -156,13 +161,12 @@ rm -f %{buildroot}%{_libdir}/libfmpich.la \
install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2
install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2
%if "%{name}" == "mvapich2-testsuite"
%if 0%{?testsuite}
# Remove everything from testsuite package
# It is all contained by mvapich2 packages
rm -rf %{buildroot}/*
%endif
%if "%{name}" != "mvapich2-testsuite"
%else
mkdir -p %{buildroot}/usr/share/modules/gnu-mvapich2
cat << EOF > %{buildroot}/usr/share/modules/gnu-mvapich2/%{version}
@ -209,7 +213,7 @@ EOF
%dir %{_bindir}
%dir %{_datadir}
%dir /usr/share/modules
%if "%{name}" == "mvapich2"
%if "%{flavor}" == ""
%dir %{_includedir}
%endif
%dir %{_mandir}
@ -236,10 +240,6 @@ EOF
%defattr(-,root,root)
%{_libdir}/*.a
%else # mvapich2-testsuite
# Nothing to package here.
%endif
%endif # !testsuite
%changelog

View File

@ -1,10 +0,0 @@
#!/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