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