779444
%global intel_mpi_bench_vers IMB-v2021.2
779444
%global osu_micro_bench_vers 5.7.1
27aaa0
Summary: MPI Benchmarks and tests
27aaa0
Name: mpitests
779444
Version: 5.7
779444
Release: 2%{?dist}
27aaa0
License: CPL and BSD
27aaa0
Group: Applications/Engineering
27aaa0
# These days we get the benchmark soucres from Intel and OSU directly
27aaa0
# rather than from openfabrics.
27aaa0
URL: http://www.openfabrics.org
27aaa0
# https://software.intel.com/en-us/articles/intel-mpi-benchmarks
5803b2
Source0: https://github.com/intel/mpi-benchmarks/archive/%{intel_mpi_bench_vers}.tar.gz
779444
Source1: http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-%{osu_micro_bench_vers}.tgz
27aaa0
# Only for old openmpi
5803b2
#Patch101: OMB-disable-collective-async.patch
27aaa0
BuildRequires: hwloc-devel, libibmad-devel, rdma-core-devel
e96759
BuildRequires: automake, autoconf, libtool
27aaa0
27aaa0
%description
27aaa0
A set of popular MPI benchmarks:
27aaa0
Intel MPI benchmarks %{intel_mpi_bench_vers}.
27aaa0
OSU micro-benchmarks %{osu_micro_bench_vers}.
27aaa0
27aaa0
# openmpi 3.0.0 dropped support for big endian ppc
27aaa0
%ifnarch ppc ppc64
27aaa0
%package openmpi
27aaa0
Summary: MPI tests package compiled against openmpi
27aaa0
Group: Applications
27aaa0
BuildRequires: openmpi-devel >= 3.1.2-2
27aaa0
Requires: openmpi%{?_isa}
27aaa0
%description openmpi
27aaa0
MPI test suite compiled against the openmpi package
27aaa0
%endif
27aaa0
27aaa0
%package mpich
27aaa0
Summary: MPI tests package compiled against mpich
27aaa0
Group: Applications
27aaa0
BuildRequires: mpich-devel >= 3.2.1-8
27aaa0
Requires: mpich%{?_isa}
27aaa0
%description mpich
27aaa0
MPI test suite compiled against the mpich package
27aaa0
27aaa0
# mvapich2 is not yet built on s390(x)
27aaa0
%ifnarch s390 s390x
27aaa0
%package mvapich2
27aaa0
Summary: MPI tests package compiled against mvapich2
27aaa0
Group: Applications
27aaa0
BuildRequires: mvapich2-devel >= 2.3-2
27aaa0
Requires: mvapich2%{?_isa}
27aaa0
%description mvapich2
27aaa0
MPI test suite compiled against the mvapich2 package
27aaa0
%endif
27aaa0
27aaa0
# PSM is x86_64-only
27aaa0
%ifarch x86_64
27aaa0
%package mvapich2-psm2
27aaa0
Summary: MPI tests package compiled against mvapich2 using OmniPath
27aaa0
Group: Applications
27aaa0
BuildRequires: mvapich2-psm2-devel >= 2.3-2
27aaa0
BuildRequires: libpsm2-devel
27aaa0
Requires: mvapich2-psm2%{?_isa}
27aaa0
%description mvapich2-psm2
27aaa0
MPI test suite compiled against the mvapich2 package using OmniPath
27aaa0
%endif
27aaa0
27aaa0
%prep
27aaa0
%setup -c 
27aaa0
%setup -T -D -a 1
779444
cd osu-micro-benchmarks-5.7.1
27aaa0
cd ..
27aaa0
27aaa0
%build
27aaa0
# We don't do a non-mpi version of this package, just straight to the mpi builds
27aaa0
export CC=mpicc
27aaa0
export CXX=mpicxx
27aaa0
export FC=mpif90
27aaa0
export F77=mpif77
5803b2
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
5803b2
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
27aaa0
do_build() {
27aaa0
  mkdir build-$MPI_COMPILER
27aaa0
  cp -al mpi-benchmarks-%{intel_mpi_bench_vers} osu-micro-benchmarks-%{osu_micro_bench_vers} build-$MPI_COMPILER
5803b2
  cd build-$MPI_COMPILER/mpi-benchmarks-%{intel_mpi_bench_vers}
5803b2
  make OPTFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" MPI_HOME="$MPI_HOME" all
5803b2
  cd ../osu-micro-benchmarks-%{osu_micro_bench_vers}
e96759
  autoreconf -vif
27aaa0
  %configure
27aaa0
  make %{?_smp_mflags}
27aaa0
  cd ../..
27aaa0
}
27aaa0
27aaa0
# do N builds, one for each mpi stack
27aaa0
%ifnarch ppc ppc64
27aaa0
%{_openmpi_load}
27aaa0
do_build
27aaa0
%{_openmpi_unload}
27aaa0
%endif
27aaa0
27aaa0
%{_mpich_load}
27aaa0
do_build
27aaa0
%{_mpich_unload}
27aaa0
27aaa0
%ifnarch s390 s390x
27aaa0
%{_mvapich2_load}
27aaa0
do_build
27aaa0
%{_mvapich2_unload}
27aaa0
27aaa0
%endif
27aaa0
27aaa0
%ifarch x86_64
27aaa0
%{_mvapich2_psm2_load}
27aaa0
do_build
27aaa0
%{_mvapich2_psm2_unload}
27aaa0
%endif
27aaa0
27aaa0
%install
27aaa0
do_install() {
27aaa0
  mkdir -p %{buildroot}$MPI_BIN
27aaa0
  cd build-$MPI_COMPILER/osu-micro-benchmarks-%{osu_micro_bench_vers}
27aaa0
  make install DESTDIR=%{buildroot}/staging
27aaa0
  find %{buildroot}/staging -name 'osu_*' -type f -perm -111 | while read X; do
27aaa0
    mv $X %{buildroot}$MPI_BIN/mpitests-$(basename $X)
27aaa0
  done
5803b2
  cd ../mpi-benchmarks-%{intel_mpi_bench_vers}/
27aaa0
  for X in IMB-*; do
27aaa0
    cp $X %{buildroot}$MPI_BIN/mpitests-$X
27aaa0
  done
5803b2
  cd ../..
27aaa0
}
27aaa0
27aaa0
# do N installs, one for each mpi stack
27aaa0
%ifnarch ppc ppc64
27aaa0
%{_openmpi_load}
27aaa0
do_install
27aaa0
%{_openmpi_unload}
27aaa0
%endif
27aaa0
27aaa0
%{_mpich_load}
27aaa0
do_install
27aaa0
%{_mpich_unload}
27aaa0
27aaa0
%ifnarch s390 s390x
27aaa0
%{_mvapich2_load}
27aaa0
do_install
27aaa0
%{_mvapich2_unload}
27aaa0
%endif
27aaa0
27aaa0
%ifarch x86_64
27aaa0
%{_mvapich2_psm2_load}
27aaa0
do_install
27aaa0
%{_mvapich2_psm2_unload}
27aaa0
%endif
27aaa0
27aaa0
%ifnarch ppc ppc64
27aaa0
%files openmpi
27aaa0
%{_libdir}/openmpi/bin/mpitests-*
27aaa0
%endif
27aaa0
27aaa0
%files mpich
27aaa0
%{_libdir}/mpich/bin/mpitests-*
27aaa0
27aaa0
%ifnarch s390 s390x
27aaa0
%files mvapich2
27aaa0
%{_libdir}/mvapich2/bin/mpitests-*
27aaa0
%endif
27aaa0
27aaa0
%ifarch x86_64
27aaa0
%files mvapich2-psm2
27aaa0
%{_libdir}/mvapich2-psm2/bin/mpitests-*
27aaa0
%endif
27aaa0
27aaa0
%changelog
779444
* Thu May 13 2021 Honggang Li <honli@redhat.com> - 5.7-2
779444
- Update OSU benchmarks to upstream release 5.7.1
779444
- Update Intel MPI Benchmarks 2021.2
779444
- Resolves: rhbz#1960078
779444
e96759
* Tue Dec 22 2020 Honggang Li <honli@redhat.com> - 5.7-1
e96759
- Update OSU benchmarks to upstream release 5.7
e96759
- Resolves: rhbz#1909632
e96759
e96759
* Thu Oct 15 2020 Honggang Li <honli@redhat.com> - 5.6.3-1
e96759
- Update OSU benchmarks to upstream release 5.6.3
e96759
- Resolves: rhbz#1888568
e96759
5803b2
* Tue May 12 2020 Honggang Li <honli@redhat.com> - 5.6.2-1
5803b2
- Update OSU benchmarks to upstream release 5.6.2
5803b2
- Update IMB benchmarks to upstream release v2019.6
5803b2
- Resolves: rhbz#1817837
5803b2
27aaa0
* Sat Sep 22 2018 Jarod Wilson <jarod@redhat.com> - 5.4.2-4
27aaa0
- Properly fix build and linker flags, annocheck now silent
27aaa0
- Resolves: rhbz#1624145
27aaa0
27aaa0
* Tue Sep 18 2018 Jarod Wilson <jarod@redhat.com> - 5.4.2-3
27aaa0
- First wave of compiler flag usage fixups from annobin scans
27aaa0
- Related: rhbz#1624145
27aaa0
27aaa0
* Thu Sep 13 2018 Jarod Wilson <jarod@redhat.com> - 5.4.2-2
27aaa0
- Rebuild with updated openmpi, mvapich and mpich for proper deps
27aaa0
- Resolves: rhbz#1628627
27aaa0
27aaa0
* Thu Aug 16 2018 Jarod Wilson <jarod@redhat.com> - 5.4.2-1
27aaa0
- Initial build for RHEL8, based on latest RHEL7 package
27aaa0
- Resolves: rhbz#1556959