From 2e7ff3a9609b81d016edad7f3d567e04298aead8 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 07 2019 13:02:39 +0000 Subject: import mpitests-5.4.2-4.el8 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46f6f3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/osu-micro-benchmarks-5.4.2.tar.gz +SOURCES/v2018.1.tar.gz diff --git a/.mpitests.metadata b/.mpitests.metadata new file mode 100644 index 0000000..b24328d --- /dev/null +++ b/.mpitests.metadata @@ -0,0 +1,2 @@ +532412ecf2e4ddf516913211a34c88452eca9e6b SOURCES/osu-micro-benchmarks-5.4.2.tar.gz +fae1fb6ddafd9a96ed96a1a04b59293e679bbec6 SOURCES/v2018.1.tar.gz diff --git a/SOURCES/OMB-disable-collective-async.patch b/SOURCES/OMB-disable-collective-async.patch new file mode 100644 index 0000000..beae0df --- /dev/null +++ b/SOURCES/OMB-disable-collective-async.patch @@ -0,0 +1,23 @@ +OMB: disable collective async + +To build mpitests against old MPI implementations that don't provide +MPI_Ibarrier etc. + +diff -up osu-micro-benchmarks-5.4/mpi/collective/Makefile.in.orig osu-micro-benchmarks-5.4/mpi/collective/Makefile.in +--- osu-micro-benchmarks-5.4/mpi/collective/Makefile.in.orig 2017-11-03 23:06:44.176756058 +0100 ++++ osu-micro-benchmarks-5.4/mpi/collective/Makefile.in 2017-11-03 23:07:05.677306833 +0100 +@@ -93,13 +93,7 @@ collective_PROGRAMS = osu_alltoallv$(EXE + osu_reduce_scatter$(EXEEXT) osu_barrier$(EXEEXT) \ + osu_reduce$(EXEEXT) osu_allreduce$(EXEEXT) \ + osu_alltoall$(EXEEXT) osu_bcast$(EXEEXT) osu_gather$(EXEEXT) \ +- osu_allgather$(EXEEXT) osu_scatter$(EXEEXT) \ +- osu_iallgather$(EXEEXT) osu_ibcast$(EXEEXT) \ +- osu_ialltoall$(EXEEXT) osu_ibarrier$(EXEEXT) \ +- osu_igather$(EXEEXT) osu_iscatter$(EXEEXT) \ +- osu_iscatterv$(EXEEXT) osu_igatherv$(EXEEXT) \ +- osu_iallgatherv$(EXEEXT) osu_ialltoallv$(EXEEXT) \ +- osu_ialltoallw$(EXEEXT) ++ osu_allgather$(EXEEXT) osu_scatter$(EXEEXT) + @CUDA_KERNELS_TRUE@am__append_1 = ../../util/kernel.cu + @BUILD_PROFILING_LIB_TRUE@@EMBEDDED_BUILD_TRUE@am__append_2 = $(top_builddir)/../lib/lib@PMPILIBNAME@.la + @OPENACC_TRUE@am__append_3 = -acc diff --git a/SPECS/mpitests.spec b/SPECS/mpitests.spec new file mode 100644 index 0000000..14b26ce --- /dev/null +++ b/SPECS/mpitests.spec @@ -0,0 +1,185 @@ +%global intel_mpi_bench_vers 2018.1 +%global osu_micro_bench_vers 5.4.2 +Summary: MPI Benchmarks and tests +Name: mpitests +Version: %{osu_micro_bench_vers} +Release: 4%{?dist} +License: CPL and BSD +Group: Applications/Engineering +# These days we get the benchmark soucres from Intel and OSU directly +# rather than from openfabrics. +URL: http://www.openfabrics.org +# https://software.intel.com/en-us/articles/intel-mpi-benchmarks +Source0: https://github.com/intel/mpi-benchmarks/archive/v%{intel_mpi_bench_vers}.tar.gz +Source1: http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-%{osu_micro_bench_vers}.tar.gz +# Only for old openmpi +Patch101: OMB-disable-collective-async.patch +BuildRequires: hwloc-devel, libibmad-devel, rdma-core-devel + +%description +A set of popular MPI benchmarks: +Intel MPI benchmarks %{intel_mpi_bench_vers}. +OSU micro-benchmarks %{osu_micro_bench_vers}. + +# openmpi 3.0.0 dropped support for big endian ppc +%ifnarch ppc ppc64 +%package openmpi +Summary: MPI tests package compiled against openmpi +Group: Applications +BuildRequires: openmpi-devel >= 3.1.2-2 +Requires: openmpi%{?_isa} +%description openmpi +MPI test suite compiled against the openmpi package +%endif + +%package mpich +Summary: MPI tests package compiled against mpich +Group: Applications +BuildRequires: mpich-devel >= 3.2.1-8 +Requires: mpich%{?_isa} +%description mpich +MPI test suite compiled against the mpich package + +# mvapich2 is not yet built on s390(x) +%ifnarch s390 s390x +%package mvapich2 +Summary: MPI tests package compiled against mvapich2 +Group: Applications +BuildRequires: mvapich2-devel >= 2.3-2 +Requires: mvapich2%{?_isa} +%description mvapich2 +MPI test suite compiled against the mvapich2 package +%endif + +# PSM is x86_64-only +%ifarch x86_64 +%package mvapich2-psm2 +Summary: MPI tests package compiled against mvapich2 using OmniPath +Group: Applications +BuildRequires: mvapich2-psm2-devel >= 2.3-2 +BuildRequires: libpsm2-devel +Requires: mvapich2-psm2%{?_isa} +%description mvapich2-psm2 +MPI test suite compiled against the mvapich2 package using OmniPath +%endif + +%prep +%setup -c +%setup -T -D -a 1 +cd osu-micro-benchmarks-%{version} +cd .. + +%build +# We don't do a non-mpi version of this package, just straight to the mpi builds +export CC=mpicc +export CXX=mpicxx +export FC=mpif90 +export F77=mpif77 +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +do_build() { + mkdir build-$MPI_COMPILER + cp -al mpi-benchmarks-%{intel_mpi_bench_vers} osu-micro-benchmarks-%{osu_micro_bench_vers} build-$MPI_COMPILER + cd build-$MPI_COMPILER/mpi-benchmarks-%{intel_mpi_bench_vers}/src + make -f make_mpich OPTFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" MPI_HOME="$MPI_HOME" all + cd ../../osu-micro-benchmarks-%{osu_micro_bench_vers} + %configure + make %{?_smp_mflags} + cd ../.. +} + +# do N builds, one for each mpi stack +%ifnarch ppc ppc64 +%{_openmpi_load} +do_build +%{_openmpi_unload} +%endif + +%{_mpich_load} +do_build +%{_mpich_unload} + +%ifnarch s390 s390x +%{_mvapich2_load} +do_build +%{_mvapich2_unload} + +%endif + +%ifarch x86_64 +%{_mvapich2_psm2_load} +do_build +%{_mvapich2_psm2_unload} +%endif + +%install +do_install() { + mkdir -p %{buildroot}$MPI_BIN + cd build-$MPI_COMPILER/osu-micro-benchmarks-%{osu_micro_bench_vers} + make install DESTDIR=%{buildroot}/staging + find %{buildroot}/staging -name 'osu_*' -type f -perm -111 | while read X; do + mv $X %{buildroot}$MPI_BIN/mpitests-$(basename $X) + done + cd ../mpi-benchmarks-%{intel_mpi_bench_vers}/src + for X in IMB-*; do + cp $X %{buildroot}$MPI_BIN/mpitests-$X + done + cd ../../.. +} + +# do N installs, one for each mpi stack +%ifnarch ppc ppc64 +%{_openmpi_load} +do_install +%{_openmpi_unload} +%endif + +%{_mpich_load} +do_install +%{_mpich_unload} + +%ifnarch s390 s390x +%{_mvapich2_load} +do_install +%{_mvapich2_unload} +%endif + +%ifarch x86_64 +%{_mvapich2_psm2_load} +do_install +%{_mvapich2_psm2_unload} +%endif + +%ifnarch ppc ppc64 +%files openmpi +%{_libdir}/openmpi/bin/mpitests-* +%endif + +%files mpich +%{_libdir}/mpich/bin/mpitests-* + +%ifnarch s390 s390x +%files mvapich2 +%{_libdir}/mvapich2/bin/mpitests-* +%endif + +%ifarch x86_64 +%files mvapich2-psm2 +%{_libdir}/mvapich2-psm2/bin/mpitests-* +%endif + +%changelog +* Sat Sep 22 2018 Jarod Wilson - 5.4.2-4 +- Properly fix build and linker flags, annocheck now silent +- Resolves: rhbz#1624145 + +* Tue Sep 18 2018 Jarod Wilson - 5.4.2-3 +- First wave of compiler flag usage fixups from annobin scans +- Related: rhbz#1624145 + +* Thu Sep 13 2018 Jarod Wilson - 5.4.2-2 +- Rebuild with updated openmpi, mvapich and mpich for proper deps +- Resolves: rhbz#1628627 + +* Thu Aug 16 2018 Jarod Wilson - 5.4.2-1 +- Initial build for RHEL8, based on latest RHEL7 package +- Resolves: rhbz#1556959