Blob Blame History Raw
Summary: Intel MPI benchmarks
Name:    intel-mpi-benchmarks
Version: 2017
Release: 2%{?dist}
License: CPL
URL:     https://software.intel.com/en-us/articles/intel-mpi-benchmarks
# The original upstream tarball is:
#   https://software.intel.com/sites/default/files/managed/a3/53/IMB_2017.tgz
# In it the following files with a non-free license were found:
#   imb/imb/doc/IMB_Users_Guide/search.js:
#     WARNING: You must purchase a copy of FAR HTML v4 or greater to use this file.
#   imb/imb/doc/IMB_Users_Guide/tree.js:
#     Please don't use this file without purchasing FAR. http://helpware.net/FAR/
# FAR is an HTML help authoring tool. It's probably unintentional for it to
# impose license restrictions on output generated by it, but to be safe
# the HTML documentation has been removed from the tarball for Fedora:
#   tar -xzvf IMB_2017.tgz
#   rm -rf imb/imb/doc/{IMB_Users_Guide/,IMB_Users_Guide.htm,marker.js}
#   tar -cjvf IMB_2017-clean.tar.xz --owner=0 --group=0 imb/
Source0: IMB_2017-clean.tar.xz
BuildRequires: gcc

%global desc The Intel MPI Benchmarks perform a set of MPI performance measurements for\
point-to-point and global communication operations for a range of message\
sizes. The generated benchmark data fully characterizes:\
 - Performance of a cluster system, including node performance, network\
   latency, and throughput\
 - Efficiency of the MPI implementation used

%description
%{desc}

%package license
Summary: License of Intel MPI benchmarks
BuildArch: noarch
%description license
This package contains the license of Intel MPI benchmarks.

%package openmpi
Summary: Intel MPI benchmarks compiled against openmpi
BuildRequires: openmpi-devel
# Require explicitly for dir ownership and to guarantee the pickup of the right runtime
Requires: openmpi
Requires: %{name}-license = %{version}-%{release}
%description openmpi
%{desc}

This package was built against the Open MPI implementation of MPI.

%package mpich
Summary: Intel MPI benchmarks compiled against mpich
BuildRequires: mpich-devel
# Require explicitly for dir ownership and to guarantee the pickup of the right runtime
Requires: mpich
Requires: %{name}-license = %{version}-%{release}
%description mpich
%{desc}

This package was built against the MPICH implementation of MPI.

%package doc
Summary: Documentation for Intel MPI benchmarks
BuildArch: noarch
Requires: %{name}-license = %{version}-%{release}
%description doc
This package contains the documentation for Intel MPI benchmarks.

%prep
%setup -q -n imb/imb

%build
do_build() {
  mkdir .$MPI_COMPILER
  cp -al * .$MPI_COMPILER
  mv .$MPI_COMPILER build-$MPI_COMPILER
  cd build-$MPI_COMPILER/src
  make -f make_mpich OPTFLAGS="%{optflags}" MPI_HOME="$MPI_HOME" all
  cd ../..
}

# do N builds, one for each mpi stack
%{_openmpi_load}
do_build
%{_openmpi_unload}

%{_mpich_load}
do_build
%{_mpich_unload}

%install
do_install() {
  mkdir -p %{buildroot}$MPI_BIN
  cd build-$MPI_COMPILER/src
  for f in IMB-*; do
    cp "$f" "%{buildroot}$MPI_BIN/${f}$MPI_SUFFIX"
  done
  cd ../..
}

# do N installs, one for each mpi stack
%{_openmpi_load}
do_install
%{_openmpi_unload}

%{_mpich_load}
do_install
%{_mpich_unload}

%files license
%license license/{,use-of-trademark-}license.txt

%files openmpi
%{_libdir}/openmpi/bin/IMB-{MPI1,EXT,IO,NBC,RMA}_openmpi

%files mpich
%{_libdir}/mpich/bin/IMB-{MPI1,EXT,IO,NBC,RMA}_mpich

%files doc
%doc doc/

%changelog
* Tue Mar 07 2017 Michal Schmidt <mschmidt@redhat.com> - 2017-2
- Remove HTML docs from the tarball due to non-free JavaScript files.

* Wed Feb 22 2017 Michal Schmidt <mschmidt@redhat.com> - 2017-1
- Initial package for Fedora.
- Parts copied from the mpitests package from RHEL.