diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47197af --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mpitests-3.2-rh.tar.gz diff --git a/.mpitests.metadata b/.mpitests.metadata new file mode 100644 index 0000000..e5328c5 --- /dev/null +++ b/.mpitests.metadata @@ -0,0 +1 @@ +13638f4003f01e4a1a7bc98a250e6499fed5b25a SOURCES/mpitests-3.2-rh.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/mpitests-3.2-make.patch b/SOURCES/mpitests-3.2-make.patch new file mode 100644 index 0000000..69de593 --- /dev/null +++ b/SOURCES/mpitests-3.2-make.patch @@ -0,0 +1,130 @@ +--- mpitests-3.2/osu_benchmarks-3.1.1/makefile.make 2009-11-15 10:09:58.000000000 -0500 ++++ mpitests-3.2/osu_benchmarks-3.1.1/makefile 2010-01-17 10:01:53.102371618 -0500 +@@ -1,6 +1,5 @@ + SHELL = /bin/sh +-prefix = /usr/local +-CC = ${MPIHOME}/bin/mpicc ++CC = mpicc + + .SUFFIXES: + .SUFFIXES: .c .o +@@ -22,9 +21,9 @@ osu_bcast: osu_bcast.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -lm -o osu_bcast osu_bcast.c $(LDLIBS) + + install: +- test -d $(prefix)/osu_benchmarks || mkdir $(prefix)/osu_benchmarks ++ test -d $(DESTDIR)$(INSTALL_DIR) || mkdir -p $(DESTDIR)$(INSTALL_DIR) + for benchmark in $(ALL_BENCHMARKS); do\ +- test -x $$benchmark && cp $$benchmark $(prefix)/osu_benchmarks;\ ++ test -x $$benchmark && cp $$benchmark $(DESTDIR)$(INSTALL_DIR)/mpitests-$$benchmark || /bin/true;\ + done + + clean: +--- mpitests-3.2/IMB-3.2/src/Makefile.base.make 2009-11-15 10:09:58.000000000 -0500 ++++ mpitests-3.2/IMB-3.2/src/Makefile.base 2010-01-17 10:06:29.888371547 -0500 +@@ -59,12 +59,20 @@ EXT : $(OBJEXT) + IO: $(OBJIO) + $(CLINKER) $(LDFLAGS) -o IMB-IO $(OBJIO) $(LIB_PATH) $(LIBS) + ++install: ++ mkdir -p ${DESTDIR}; \ ++ for benchmark in IMB-MPI1 IMB-EXT IMB-IO; do \ ++ if [ -e $$benchmark ]; then \ ++ cp $$benchmark ${DESTDIR}${INSTALL_DIR}/mpitests-$$benchmark; \ ++ fi; \ ++ done ++ + # Make sure that we remove executables for specific architectures + clean: + /bin/rm -f *.o *~ PI* core IMB-IO IMB-EXT IMB-MPI1 exe_io exe_ext exe_mpi1 + + .c.o: +- $(CC) $(MPI_INCLUDE) $(CPPFLAGS) -D$(CPP) $(OPTFLAGS) -c $*.c ++ $(CC) $(CPPFLAGS) -D$(CPP) $(OPTFLAGS) -c $*.c + + # DEPENDENCIES + IMB_declare.h: IMB_settings.h IMB_comm_info.h IMB_settings_io.h IMB_bnames_mpi1.h \ +--- mpitests-3.2/IMB-3.2/src/Makefile.make 2009-11-15 10:09:58.000000000 -0500 ++++ mpitests-3.2/IMB-3.2/src/Makefile 2010-01-17 10:01:53.101371937 -0500 +@@ -1,21 +1,9 @@ + # Enter root directory of mpich install +-MPI_HOME=$(MPIHOME) +- +-MPICC=$(shell find ${MPI_HOME} -name mpicc -print) +- +-NULL_STRING := +-ifneq (,$(findstring /bin/mpicc,${MPICC})) +-MPI_INCLUDE := -I${MPI_HOME}/include +-else +-$(error Variable MPI_HOME="${MPI_HOME}" does not seem to contain a valid mpicc) +-endif +-LIB_PATH = +-LIBS = +-CC = ${MPI_HOME}/bin/mpicc ++CC = mpicc + OPTFLAGS = -O3 + CLINKER = ${CC} + LDFLAGS = + CPPFLAGS = + +-export MPI_INCLUDE CC LIB_PATH LIBS OPTFLAGS CLINKER LDFLAGS CPPFLAGS ++export CC OPTFLAGS CLINKER LDFLAGS CPPFLAGS + include Makefile.base +--- mpitests-3.2/Makefile.make 2013-08-27 10:45:52.000000000 -0400 ++++ mpitests-3.2/Makefile 2013-08-27 12:10:36.000000000 -0400 +@@ -1,36 +1,24 @@ +-CFLAGS = +-MPIHOME=./ +-CC = +-LIBS = +-INCLUDES = +-OBJS = +-SRCS = +-INSTALL_DIR=tests/ +-INSTALL_IMB=IMB-3.2 +-INSTALL_OSU=osu_benchmarks-3.1.1 +-all: ibm osu +-install: install-ibm install-osu ++CC = mpicc ++IMB=IMB-3.2 ++PRESTA=presta-1.4.0 ++OSU=osu_benchmarks-3.1.1 ++ ++all: imb osu ++install: install-imb install-osu ++clean: clean-imb clean-osu + + # The variable $@ has the value of the target. +-ibm: +- cd $(PWD)/$(INSTALL_IMB)/src && make MPIHOME=$(MPIHOME) IMB-MPI1 ++imb: ++ cd $(IMB)/src && make all + osu: +- cd $(PWD)/$(INSTALL_OSU) && make MPIHOME=$(MPIHOME) +-clean-ibm: +- cd $(PWD)/$(INSTALL_IMB)/src && make MPIHOME=$(MPIHOME) clean ++ cd $(OSU) && make all ++osu-mpi1: ++ cd $(OSU) && make mpi1 ++clean-imb: ++ cd $(IMB)/src && make clean + clean-osu: +- cd $(PWD)/$(INSTALL_OSU) && make MPIHOME=$(MPIHOME) clean +-clean: clean-ibm clean-osu +- rm -rf $(MPIHOME)/$(INSTALL_DIR) +-install-ibm: +- mkdir -p $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_IMB) +- cp -f $(INSTALL_IMB)/src/IMB-MPI1 $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_IMB) ++ cd $(OSU) && make clean ++install-imb: ++ cd $(IMB)/src && make install + install-osu: +- mkdir -p $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_bw $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_bibw $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_bcast $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_latency $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_mbw_mr $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_alltoall $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) +- cp -f $(INSTALL_OSU)/osu_multi_lat $(MPIHOME)/$(INSTALL_DIR)/$(INSTALL_OSU) ++ cd $(OSU) && make install diff --git a/SOURCES/mpitests-win-free.patch b/SOURCES/mpitests-win-free.patch new file mode 100644 index 0000000..1753a6c --- /dev/null +++ b/SOURCES/mpitests-win-free.patch @@ -0,0 +1,12 @@ +--- mpitests-3.2/IMB-3.2/src/IMB_window.c.orig 2013-02-25 15:50:55.000000000 -0500 ++++ mpitests-3.2/IMB-3.2/src/IMB_window.c 2013-02-25 15:51:22.000000000 -0500 +@@ -140,6 +140,9 @@ Output variables: + c_info->rank, 0, 1, c_info->r_data_type, c_info->WIN); + MPI_ERRHAND(ierr); + } ++ /* Added a call to MPI_WIN_FENCE, per MPI-2.1 11.2.1 */ ++ ierr = MPI_Win_fence(0, c_info->WIN); ++ MPI_ERRHAND(ierr); + ierr = MPI_Win_free(&c_info->WIN); + MPI_ERRHAND(ierr); + } diff --git a/SPECS/mpitests.spec b/SPECS/mpitests.spec new file mode 100644 index 0000000..fdb09b4 --- /dev/null +++ b/SPECS/mpitests.spec @@ -0,0 +1,231 @@ +Summary: MPI Benchmarks and tests +Name: mpitests +Version: 3.2 +Release: 13%{?dist} +License: BSD +Group: Applications/Engineering +# We get the mpitests.tar.gz file from an OFED release. +# Unfortunately, they're not good about changing the name +# of the tarball when they change the contents. +# and we had to do some cleanup on the contents. +URL: http://www.openfabrics.org +Source: mpitests-%{version}-rh.tar.gz +Patch0: mpitests-3.2-make.patch +Patch1: mpitests-win-free.patch +Provides: mpitests +BuildRequires: hwloc-devel, libibmad-devel +# mvapich2 only exists on these arches +ExclusiveArch: i686 i386 x86_64 ia64 ppc64le aarch64 + +%description +Set of popular MPI benchmarks: +IMB-3.2 +Presta-1.4.0 +OSU benchmarks ver 3.1.1 + +%package openmpi +Summary: MPI tests package compiled against openmpi +Group: Applications +BuildRequires: openmpi >= 1.4, openmpi-devel +%description openmpi +MPI test suite compiled against the openmpi package + +%package mpich +Summary: MPI tests package compiled against mpich +Group: Applications +BuildRequires: mpich-devel >= 3.0.4 +BuildRequires: librdmacm-devel, libibumad-devel +%description mpich +MPI test suite compiled against the mpich package + +%package mvapich2 +Summary: MPI tests package compiled against mvapich2 +Group: Applications +BuildRequires: mvapich2-devel >= 1.4 +BuildRequires: librdmacm-devel, libibumad-devel +%description mvapich2 +MPI test suite compiled against the mvapich2 package + +%ifarch x86_64 +%package mvapich2-psm +Summary: MPI tests package compiled against mvapich2 using InfiniPath +Group: Applications +BuildRequires: mvapich2-psm-devel >= 1.4 +BuildRequires: librdmacm-devel, libibumad-devel +BuildRequires: infinipath-psm-devel +%description mvapich2-psm +MPI test suite compiled against the mvapich2 package using InfiniPath +%endif + +%prep +%setup -q +# secretly patch the code one layer down, not at the top level +%patch0 -p1 -b .make +%patch1 -p1 -b .win_free + +%build +RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//' -e 's/-fstack-protector-strong//' -e 's/-fstack-protector//'` +# 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 .$MPI_COMPILER + cp -al * .$MPI_COMPILER + cd .$MPI_COMPILER + make $* + cd .. +} + + +# do N builds, one for each mpi stack +%{_openmpi_load} +do_build all +%{_openmpi_unload} + +%{_mpich_load} +do_build all +%{_mpich_unload} + +%{_mvapich2_load} +do_build all +%{_mvapich2_unload} +%ifarch x86_64 + +%{_mvapich2_psm_load} +do_build all +%{_mvapich2_psm_unload} +%endif +%install +rm -rf %{buildroot} +# do N installs, one for each mpi stack +%{_openmpi_load} +mkdir -p %{buildroot}$MPI_BIN +make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install +%{_openmpi_unload} + +%{_mpich_load} +mkdir -p %{buildroot}$MPI_BIN +make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install +%{_mpich_unload} + +%{_mvapich2_load} +mkdir -p %{buildroot}$MPI_BIN +make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install +%{_mvapich2_unload} +%ifarch x86_64 +%{_mvapich2_psm_load} +mkdir -p %{buildroot}$MPI_BIN +make -C .$MPI_COMPILER DESTDIR=%{buildroot} INSTALL_DIR=$MPI_BIN install +%{_mvapich2_psm_unload} +%endif +%clean +rm -rf %{buildroot} + +%files openmpi +%defattr(-, root, root, -) +%{_libdir}/openmpi/bin/* + +%files mpich +%defattr(-, root, root, -) +%{_libdir}/mpich/bin/* + +%files mvapich2 +%defattr(-, root, root, -) +%{_libdir}/mvapich2/bin/* + +%ifarch x86_64 +%files mvapich2-psm +%defattr(-, root, root, -) +%{_libdir}/mvapich2-psm/bin/* +%endif +%changelog +* Thu Sep 11 2014 Yaakov Selkowitz - 3.2-13 +- Enable on aarch64 + Resolves: rhbz1100503 + +* Tue Sep 9 2014 Dan HorĂ¡k +- Mass rebuild 2013-12-27 + +* Wed Oct 9 2013 Jay Fenlason 3.2-10 +- Add BuildRequires for libibmad-devel +- Build against mpich, now that we have a mpi-3 version of it. +- rebuild against new mvapich2 + Resolves: rhbz1011910, rhbz1011915 + +* Tue Aug 27 2013 Jay Fenlason 3.2-9 +- Remove presta and obsolete versions of imb and osu from the tarball. +- clean up build process + +* Thu Aug 22 2013 Jay Fenlason 3.2-8 +- Remove mvapich, as it is dead upstream + +* Tue Feb 26 2013 Jay Fenlason 3.2-7 +- Add win_free patch to close + Resolves: rhbz834237 + +* Thu May 31 2012 Jay Fenlason 3.2-6 +- Add BuildRequires: hwloc-devel to close + Resolves: rhbz822526 + +* Tue Feb 21 2012 Jay Fenlason 3.2-5.el6 +- Rebuild against newer infinipath-psm, openmpi, mvapich, mvapich2 + This removes the openmpi-psm subpackage, as openmpi now switches between + psm and non- at runtime. +- Correct version numbers for IMB and OSU benchmarkes in the description. +- Update spec file to fix pkgwrangler warnings. + Resolves: rhbz557803 + Related: rhbz739138 + +* Mon Aug 22 2011 Jay Fenlason 3.2-4.el6 +- BuildRequires infinipath-psm-devel for the infinipath subpackages. + Related: rhbz725016 + +* Thu Aug 18 2011 Jay Fenlason 3.2-3.el6 +- Build using new mvapich, mvapich2, and openmpi. + Add support for the -psm variants of the three mpi stacks. + Related: rhbz725016 + +* Fri Jan 15 2010 Doug Ledford - 3.2-2.el6 +- Rebuild using Fedora MPI package guidelines semantics +- Related: bz543948 + +* Tue Dec 22 2009 Doug Ledford - 3.2-1.el5 +- Update to latest release and compile against new mpi libs +- Related: bz518218 + +* Mon Jun 22 2009 Doug Ledford - 3.1-3.el5 +- Rebuild against libibverbs that isn't missing the proper ppc wmb() macro +- Related: bz506258 + +* Sun Jun 21 2009 Doug Ledford - 3.1-2.el5 +- Rebuild against MPIs that were rebuilt against non-XRC libibverbs +- Related: bz506258 + +* Thu Apr 23 2009 Doug Ledford - 3.1-1 +- Upgrade to version from ofed 1.4.1-rc3 +- Related: bz459652 + +* Thu Sep 18 2008 Doug Ledford - 3.0-2 +- Add no-strict-aliasing compile flag to silence warnings + +* Thu Sep 18 2008 Doug Ledford - 3.0-1 +- Update to latest upstream version +- Compile three times against the three mpi stacks and make three packages +- Resolves: bz451474 + +* Mon Jan 22 2007 Doug Ledford - 2.0-2 +- Recreate lost spec file and patches from memory +- Add dist tag to release +- Turn off FORTIFY_SOURCE when building +