3d36fe
%global intel_mpi_bench_vers IMB-v2021.3
3d36fe
%global osu_micro_bench_vers 5.8
7f2a2a
Summary: MPI Benchmarks and tests
7f2a2a
Name: mpitests
3d36fe
Version: 5.8
3d36fe
Release: 1%{?dist}
7f2a2a
License: CPL and BSD
7f2a2a
Group: Applications/Engineering
7f2a2a
# These days we get the benchmark soucres from Intel and OSU directly
7f2a2a
# rather than from openfabrics.
7f2a2a
URL: http://www.openfabrics.org
7f2a2a
# https://software.intel.com/en-us/articles/intel-mpi-benchmarks
7f2a2a
Source0: https://github.com/intel/mpi-benchmarks/archive/%{intel_mpi_bench_vers}.tar.gz
7f2a2a
Source1: http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-%{osu_micro_bench_vers}.tgz
7f2a2a
# Only for old openmpi
7f2a2a
#Patch101: OMB-disable-collective-async.patch
7f2a2a
BuildRequires: hwloc-devel, libibmad-devel, rdma-core-devel
7f2a2a
BuildRequires: automake, autoconf, libtool
7f2a2a
BuildRequires: gcc, gcc-c++
7f2a2a
7f2a2a
%description
7f2a2a
A set of popular MPI benchmarks:
7f2a2a
Intel MPI benchmarks %{intel_mpi_bench_vers}.
7f2a2a
OSU micro-benchmarks %{osu_micro_bench_vers}.
7f2a2a
7f2a2a
# openmpi 3.0.0 dropped support for big endian ppc
7f2a2a
%ifnarch ppc ppc64
7f2a2a
%package openmpi
7f2a2a
Summary: MPI tests package compiled against openmpi
7f2a2a
Group: Applications
7f2a2a
BuildRequires: openmpi-devel >= 3.1.2-2
7f2a2a
Requires: openmpi%{?_isa}
7f2a2a
%description openmpi
7f2a2a
MPI test suite compiled against the openmpi package
7f2a2a
%endif
7f2a2a
7f2a2a
%package mpich
7f2a2a
Summary: MPI tests package compiled against mpich
7f2a2a
Group: Applications
7f2a2a
BuildRequires: mpich-devel >= 3.2.1-8
7f2a2a
Requires: mpich%{?_isa}
7f2a2a
%description mpich
7f2a2a
MPI test suite compiled against the mpich package
7f2a2a
7f2a2a
# mvapich2 is not yet built on s390(x)
7f2a2a
%ifnarch s390 s390x
7f2a2a
%package mvapich2
7f2a2a
Summary: MPI tests package compiled against mvapich2
7f2a2a
Group: Applications
7f2a2a
BuildRequires: mvapich2-devel >= 2.3-2
7f2a2a
Requires: mvapich2%{?_isa}
7f2a2a
%description mvapich2
7f2a2a
MPI test suite compiled against the mvapich2 package
7f2a2a
%endif
7f2a2a
7f2a2a
# PSM is x86_64-only
7f2a2a
%ifarch x86_64
7f2a2a
%package mvapich2-psm2
7f2a2a
Summary: MPI tests package compiled against mvapich2 using OmniPath
7f2a2a
Group: Applications
7f2a2a
BuildRequires: mvapich2-psm2-devel >= 2.3-2
7f2a2a
BuildRequires: libpsm2-devel
7f2a2a
Requires: mvapich2-psm2%{?_isa}
7f2a2a
%description mvapich2-psm2
7f2a2a
MPI test suite compiled against the mvapich2 package using OmniPath
7f2a2a
%endif
7f2a2a
7f2a2a
%prep
7f2a2a
%setup -c 
7f2a2a
%setup -T -D -a 1
3d36fe
cd osu-micro-benchmarks-5.8
7f2a2a
cd ..
7f2a2a
7f2a2a
%build
7f2a2a
# We don't do a non-mpi version of this package, just straight to the mpi builds
7f2a2a
export CC=mpicc
7f2a2a
export CXX=mpicxx
7f2a2a
export FC=mpif90
7f2a2a
export F77=mpif77
7f2a2a
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
7f2a2a
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
7f2a2a
do_build() {
7f2a2a
  mkdir build-$MPI_COMPILER
7f2a2a
  cp -al mpi-benchmarks-%{intel_mpi_bench_vers} osu-micro-benchmarks-%{osu_micro_bench_vers} build-$MPI_COMPILER
7f2a2a
  cd build-$MPI_COMPILER/mpi-benchmarks-%{intel_mpi_bench_vers}
7f2a2a
  make OPTFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" MPI_HOME="$MPI_HOME" all
7f2a2a
  cd ../osu-micro-benchmarks-%{osu_micro_bench_vers}
7f2a2a
  autoreconf -vif
7f2a2a
  %configure
7f2a2a
  make %{?_smp_mflags}
7f2a2a
  cd ../..
7f2a2a
}
7f2a2a
7f2a2a
# do N builds, one for each mpi stack
7f2a2a
%ifnarch ppc ppc64
7f2a2a
%{_openmpi_load}
7f2a2a
do_build
7f2a2a
%{_openmpi_unload}
7f2a2a
%endif
7f2a2a
7f2a2a
%{_mpich_load}
7f2a2a
do_build
7f2a2a
%{_mpich_unload}
7f2a2a
7f2a2a
%ifnarch s390 s390x
7f2a2a
%{_mvapich2_load}
7f2a2a
do_build
7f2a2a
%{_mvapich2_unload}
7f2a2a
7f2a2a
%endif
7f2a2a
7f2a2a
%ifarch x86_64
7f2a2a
%{_mvapich2_psm2_load}
7f2a2a
do_build
7f2a2a
%{_mvapich2_psm2_unload}
7f2a2a
%endif
7f2a2a
7f2a2a
%install
7f2a2a
do_install() {
7f2a2a
  mkdir -p %{buildroot}$MPI_BIN
7f2a2a
  cd build-$MPI_COMPILER/osu-micro-benchmarks-%{osu_micro_bench_vers}
7f2a2a
  make install DESTDIR=%{buildroot}/staging
7f2a2a
  find %{buildroot}/staging -name 'osu_*' -type f -perm -111 | while read X; do
7f2a2a
    mv $X %{buildroot}$MPI_BIN/mpitests-$(basename $X)
7f2a2a
  done
7f2a2a
  cd ../mpi-benchmarks-%{intel_mpi_bench_vers}/
7f2a2a
  for X in IMB-*; do
7f2a2a
    cp $X %{buildroot}$MPI_BIN/mpitests-$X
7f2a2a
  done
7f2a2a
  cd ../..
7f2a2a
}
7f2a2a
7f2a2a
# do N installs, one for each mpi stack
7f2a2a
%ifnarch ppc ppc64
7f2a2a
%{_openmpi_load}
7f2a2a
do_install
7f2a2a
%{_openmpi_unload}
7f2a2a
%endif
7f2a2a
7f2a2a
%{_mpich_load}
7f2a2a
do_install
7f2a2a
%{_mpich_unload}
7f2a2a
7f2a2a
%ifnarch s390 s390x
7f2a2a
%{_mvapich2_load}
7f2a2a
do_install
7f2a2a
%{_mvapich2_unload}
7f2a2a
%endif
7f2a2a
7f2a2a
%ifarch x86_64
7f2a2a
%{_mvapich2_psm2_load}
7f2a2a
do_install
7f2a2a
%{_mvapich2_psm2_unload}
7f2a2a
%endif
7f2a2a
7f2a2a
%ifnarch ppc ppc64
7f2a2a
%files openmpi
7f2a2a
%{_libdir}/openmpi/bin/mpitests-*
7f2a2a
%endif
7f2a2a
7f2a2a
%files mpich
7f2a2a
%{_libdir}/mpich/bin/mpitests-*
7f2a2a
7f2a2a
%ifnarch s390 s390x
7f2a2a
%files mvapich2
7f2a2a
%{_libdir}/mvapich2/bin/mpitests-*
7f2a2a
%endif
7f2a2a
7f2a2a
%ifarch x86_64
7f2a2a
%files mvapich2-psm2
7f2a2a
%{_libdir}/mvapich2-psm2/bin/mpitests-*
7f2a2a
%endif
7f2a2a
7f2a2a
%changelog
3d36fe
* Wed Dec 08 2021 Honggang Li <honli@redhat.com> - 5.8-1
3d36fe
- Update OSU benchmarks to upstream release 5.8
3d36fe
- Update Intel MPI Benchmarks 2021.3
3d36fe
- Resolves: rhbz#2015392
3d36fe
7f2a2a
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 5.7-4
7f2a2a
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
7f2a2a
  Related: rhbz#1991688
7f2a2a
7f2a2a
* Tue Jul 20 2021 Honggang Li <honli@redhat.com> - 5.7-3
7f2a2a
- Update OSU benchmarks to upstream release 5.7.1
7f2a2a
- Update Intel MPI Benchmarks 2021.2
7f2a2a
- Resolves: rhbz#1960479
7f2a2a
7f2a2a
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 5.7-2
7f2a2a
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
7f2a2a
7f2a2a
* Thu Feb 18 2021 Honggang Li <honli@redhat.com> - 5.7-1
7f2a2a
- Update OSU benchmarks to upstream release 5.7
7f2a2a
- Build mpitests for RHEL9
7f2a2a
- Resolves: rhbz#1923508