2e3fb2
Summary: MPI Benchmarks and tests
2e3fb2
Name: mpitests
2e3fb2
Version: 3.2
2e3fb2
Release: 13%{?dist}
2e3fb2
License: BSD
2e3fb2
Group: Applications/Engineering
2e3fb2
# We get the mpitests.tar.gz file from an OFED release.
2e3fb2
# Unfortunately, they're not good about changing the name
2e3fb2
# of the tarball when they change the contents.
2e3fb2
# and we had to do some cleanup on the contents.
2e3fb2
URL: http://www.openfabrics.org
2e3fb2
Source: mpitests-%{version}-rh.tar.gz
2e3fb2
Patch0: mpitests-3.2-make.patch
2e3fb2
Patch1: mpitests-win-free.patch
2e3fb2
Provides: mpitests
2e3fb2
BuildRequires: hwloc-devel, libibmad-devel
2e3fb2
# mvapich2 only exists on these arches
2e3fb2
ExclusiveArch: i686 i386 x86_64 ia64 ppc64le aarch64
2e3fb2
2e3fb2
%description
2e3fb2
Set of popular MPI benchmarks:
2e3fb2
IMB-3.2
2e3fb2
Presta-1.4.0
2e3fb2
OSU benchmarks ver 3.1.1
2e3fb2
2e3fb2
%package openmpi
2e3fb2
Summary: MPI tests package compiled against openmpi
2e3fb2
Group: Applications
2e3fb2
BuildRequires: openmpi >= 1.4, openmpi-devel
2e3fb2
%description openmpi
2e3fb2
MPI test suite compiled against the openmpi package
2e3fb2
2e3fb2
%package mpich
2e3fb2
Summary: MPI tests package compiled against mpich
2e3fb2
Group: Applications
2e3fb2
BuildRequires: mpich-devel >= 3.0.4
2e3fb2
BuildRequires: librdmacm-devel, libibumad-devel
2e3fb2
%description mpich
2e3fb2
MPI test suite compiled against the mpich package
2e3fb2
2e3fb2
%package mvapich2
2e3fb2
Summary: MPI tests package compiled against mvapich2
2e3fb2
Group: Applications
2e3fb2
BuildRequires: mvapich2-devel >= 1.4
2e3fb2
BuildRequires: librdmacm-devel, libibumad-devel
2e3fb2
%description mvapich2
2e3fb2
MPI test suite compiled against the mvapich2 package
2e3fb2
2e3fb2
%ifarch x86_64
2e3fb2
%package mvapich2-psm
2e3fb2
Summary: MPI tests package compiled against mvapich2 using InfiniPath
2e3fb2
Group: Applications
2e3fb2
BuildRequires: mvapich2-psm-devel >= 1.4
2e3fb2
BuildRequires: librdmacm-devel, libibumad-devel
2e3fb2
BuildRequires: infinipath-psm-devel
2e3fb2
%description mvapich2-psm
2e3fb2
MPI test suite compiled against the mvapich2 package using InfiniPath
2e3fb2
%endif
2e3fb2
2e3fb2
%prep
2e3fb2
%setup -q
2e3fb2
# secretly patch the code one layer down, not at the top level
2e3fb2
%patch0 -p1 -b .make
2e3fb2
%patch1 -p1 -b .win_free
2e3fb2
2e3fb2
%build
2e3fb2
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//' -e 's/-fstack-protector-strong//' -e 's/-fstack-protector//'`
2e3fb2
# We don't do a non-mpi version of this package, just straight to the mpi builds
2e3fb2
export CC=mpicc
2e3fb2
export CXX=mpicxx
2e3fb2
export FC=mpif90
2e3fb2
export F77=mpif77
2e3fb2
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
2e3fb2
do_build() { 
2e3fb2
  mkdir .$MPI_COMPILER
2e3fb2
  cp -al * .$MPI_COMPILER
2e3fb2
  cd .$MPI_COMPILER
2e3fb2
  make $*
2e3fb2
  cd ..
2e3fb2
}
2e3fb2
2e3fb2
2e3fb2
# do N builds, one for each mpi stack
2e3fb2
%{_openmpi_load}
2e3fb2
do_build all
2e3fb2
%{_openmpi_unload}
2e3fb2
2e3fb2
%{_mpich_load}
2e3fb2
do_build all
2e3fb2
%{_mpich_unload}
2e3fb2
2e3fb2
%{_mvapich2_load}
2e3fb2
do_build all
2e3fb2
%{_mvapich2_unload}
2e3fb2
%ifarch x86_64
2e3fb2
2e3fb2
%{_mvapich2_psm_load}
2e3fb2
do_build all
2e3fb2
%{_mvapich2_psm_unload}
2e3fb2
%endif
2e3fb2
%install
2e3fb2
rm -rf %{buildroot}
2e3fb2
# do N installs, one for each mpi stack
2e3fb2
%{_openmpi_load}
2e3fb2
mkdir -p %{buildroot}$MPI_BIN
2e3fb2
make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install
2e3fb2
%{_openmpi_unload}
2e3fb2
2e3fb2
%{_mpich_load}
2e3fb2
mkdir -p %{buildroot}$MPI_BIN
2e3fb2
make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install
2e3fb2
%{_mpich_unload}
2e3fb2
2e3fb2
%{_mvapich2_load}
2e3fb2
mkdir -p %{buildroot}$MPI_BIN
2e3fb2
make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install
2e3fb2
%{_mvapich2_unload}
2e3fb2
%ifarch x86_64
2e3fb2
%{_mvapich2_psm_load}
2e3fb2
mkdir -p %{buildroot}$MPI_BIN
2e3fb2
make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install
2e3fb2
%{_mvapich2_psm_unload}
2e3fb2
%endif
2e3fb2
%clean
2e3fb2
rm -rf %{buildroot}
2e3fb2
2e3fb2
%files openmpi
2e3fb2
%defattr(-, root, root, -)
2e3fb2
%{_libdir}/openmpi/bin/*
2e3fb2
2e3fb2
%files mpich
2e3fb2
%defattr(-, root, root, -)
2e3fb2
%{_libdir}/mpich/bin/*
2e3fb2
2e3fb2
%files mvapich2
2e3fb2
%defattr(-, root, root, -)
2e3fb2
%{_libdir}/mvapich2/bin/*
2e3fb2
2e3fb2
%ifarch x86_64
2e3fb2
%files mvapich2-psm
2e3fb2
%defattr(-, root, root, -)
2e3fb2
%{_libdir}/mvapich2-psm/bin/*
2e3fb2
%endif
2e3fb2
%changelog
2e3fb2
* Thu Sep 11 2014 Yaakov Selkowitz <yselkowi@redhat.com> - 3.2-13
2e3fb2
- Enable on aarch64
2e3fb2
  Resolves: rhbz1100503
2e3fb2
2e3fb2
* Tue Sep 9 2014 Dan HorĂ¡k 
2e3fb2
- enable on ppc64le
2e3fb2
- Resolves:#1125616
2e3fb2
2e3fb2
* Mon Jan 6 2014 Jay Fenlason 
2e3fb2
- Fix flags regexes
2e3fb2
  Resolves: rhbz1048884
2e3fb2
2e3fb2
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com>
2e3fb2
- Mass rebuild 2013-12-27
2e3fb2
2e3fb2
* Wed Oct 9 2013 Jay Fenlason <fenlason@redhat.com> 3.2-10
2e3fb2
- Add BuildRequires for libibmad-devel
2e3fb2
- Build against mpich, now that we have a mpi-3 version of it.
2e3fb2
- rebuild against new mvapich2
2e3fb2
  Resolves: rhbz1011910, rhbz1011915
2e3fb2
2e3fb2
* Tue Aug 27 2013 Jay Fenlason <fenlason@redhat.com> 3.2-9
2e3fb2
- Remove presta and obsolete versions of imb and osu from the tarball.
2e3fb2
- clean up build process
2e3fb2
2e3fb2
* Thu Aug 22 2013 Jay Fenlason <fenlason@redhat.com> 3.2-8
2e3fb2
- Remove mvapich, as it is dead upstream
2e3fb2
2e3fb2
* Tue Feb 26 2013 Jay Fenlason <fenlason@redhat.com> 3.2-7
2e3fb2
- Add win_free patch to close
2e3fb2
  Resolves: rhbz834237
2e3fb2
2e3fb2
* Thu May 31 2012 Jay Fenlason <fenlason@redhat.com> 3.2-6
2e3fb2
- Add BuildRequires: hwloc-devel to close
2e3fb2
  Resolves: rhbz822526
2e3fb2
2e3fb2
* Tue Feb 21 2012 Jay Fenlason <fenlason@redhat.com> 3.2-5.el6
2e3fb2
- Rebuild against newer infinipath-psm, openmpi, mvapich, mvapich2
2e3fb2
  This removes the openmpi-psm subpackage, as openmpi now switches between
2e3fb2
   psm and non- at runtime.
2e3fb2
- Correct version numbers for IMB and OSU benchmarkes in the description.
2e3fb2
- Update spec file to fix pkgwrangler warnings.
2e3fb2
  Resolves: rhbz557803
2e3fb2
  Related: rhbz739138
2e3fb2
2e3fb2
* Mon Aug 22 2011 Jay Fenlason <fenlason@redhat.com> 3.2-4.el6
2e3fb2
- BuildRequires infinipath-psm-devel for the infinipath subpackages.
2e3fb2
  Related: rhbz725016
2e3fb2
2e3fb2
* Thu Aug 18 2011 Jay Fenlason <fenlason@redhat.com> 3.2-3.el6
2e3fb2
- Build using new mvapich, mvapich2, and openmpi.
2e3fb2
  Add support for the -psm variants of the three mpi stacks.
2e3fb2
  Related: rhbz725016
2e3fb2
2e3fb2
* Fri Jan 15 2010 Doug Ledford <dledford@redhat.com> - 3.2-2.el6
2e3fb2
- Rebuild using Fedora MPI package guidelines semantics
2e3fb2
- Related: bz543948
2e3fb2
2e3fb2
* Tue Dec 22 2009 Doug Ledford <dledford@redhat.com> - 3.2-1.el5
2e3fb2
- Update to latest release and compile against new mpi libs
2e3fb2
- Related: bz518218
2e3fb2
2e3fb2
* Mon Jun 22 2009 Doug Ledford <dledford@redhat.com> - 3.1-3.el5
2e3fb2
- Rebuild against libibverbs that isn't missing the proper ppc wmb() macro
2e3fb2
- Related: bz506258
2e3fb2
2e3fb2
* Sun Jun 21 2009 Doug Ledford <dledford@redhat.com> - 3.1-2.el5
2e3fb2
- Rebuild against MPIs that were rebuilt against non-XRC libibverbs
2e3fb2
- Related: bz506258
2e3fb2
2e3fb2
* Thu Apr 23 2009 Doug Ledford <dledford@redhat.com> - 3.1-1
2e3fb2
- Upgrade to version from ofed 1.4.1-rc3
2e3fb2
- Related: bz459652
2e3fb2
2e3fb2
* Thu Sep 18 2008 Doug Ledford <dledford@redhat.com> - 3.0-2
2e3fb2
- Add no-strict-aliasing compile flag to silence warnings
2e3fb2
2e3fb2
* Thu Sep 18 2008 Doug Ledford <dledford@redhat.com> - 3.0-1
2e3fb2
- Update to latest upstream version
2e3fb2
- Compile three times against the three mpi stacks and make three packages
2e3fb2
- Resolves: bz451474
2e3fb2
2e3fb2
* Mon Jan 22 2007 Doug Ledford <dledford@redhat.com> - 2.0-2
2e3fb2
- Recreate lost spec file and patches from memory
2e3fb2
- Add dist tag to release
2e3fb2
- Turn off FORTIFY_SOURCE when building
2e3fb2