Name: mpibash Version: 1.3 Release: 5%{?dist} Summary: Parallel scripting right from the Bourne-Again Shell License: GPLv3+ Url: https://github.com/lanl/MPI-Bash Source0: https://github.com/lanl/MPI-Bash/releases/download/v%{version}/mpibash-%{version}.tar.gz BuildRequires: bash-devel >= 4.4 %description MPI-Bash makes it possible to parallelize Bash scripts which run a set of Linux commands independently over a large number of input files. Because MPI-Bash includes various MPI functions for data transfer and synchronization, it is not limited to parallel workloads but can incorporate phased operations (i.e. all workers must finish operation X before any worker is allowed to begin operation Y). %package openmpi Summary: Mpibash Open MPI binaries and libraries BuildRequires: openmpi-devel BuildRequires: libcircle-openmpi-devel %description openmpi MPI-Bash makes it possible to parallelize Bash scripts which run a set of Linux commands independently over a large number of input files. Because MPI-Bash includes various MPI functions for data transfer and synchronization, it is not limited to parallel workloads but can incorporate phased operations (i.e. all workers must finish operation X before any worker is allowed to begin operation Y). mpibash compiled with Open MPI, package incl. binaries and libraries %package mpich Summary: Mpibash MPICH binaries and libraries BuildRequires: mpich-devel BuildRequires: libcircle-mpich-devel %description mpich MPI-Bash makes it possible to parallelize Bash scripts which run a set of Linux commands independently over a large number of input files. Because MPI-Bash includes various MPI functions for data transfer and synchronization, it is not limited to parallel workloads but can incorporate phased operations (i.e. all workers must finish operation X before any worker is allowed to begin operation Y). mpibash compiled with MPICH, package incl. binaries and libraries %package openmpi-examples Summary: Example Scripts for Open MPI %{name} Requires: %{name}-openmpi = %{version} %description openmpi-examples MPI-Bash makes it possible to parallelize Bash scripts which run a set of Linux commands independently over a large number of input files. This package contains example scripts for mpibash compiled with Open MPI. %package mpich-examples Summary: Example Scripts for MPICH %{name} Requires: %{name}-mpich = %{version} %description mpich-examples MPI-Bash makes it possible to parallelize Bash scripts which run a set of Linux commands independently over a large number of input files. This package contains example scripts for mpibash compiled with MPICH. %prep %setup -q %build mkdir openmpi mpich %global dconfigure %(printf %%s '%configure' | sed 's!\./configure!../configure!g') pushd openmpi %{_openmpi_load} %dconfigure --with-bashdir=/usr/include/bash --docdir=${MPI_LIB}/share/%{name} --with-plugindir=${MPI_LIB}/%{name}/ --bindir=${MPI_BIN} --mandir=${MPI_MAN} --program-suffix=${MPI_SUFFIX} CC=mpicc %make_build %{_openmpi_unload} popd pushd mpich %{_mpich_load} %dconfigure --with-bashdir=/usr/include/bash --docdir=${MPI_LIB}/share/%{name} --with-plugindir=${MPI_LIB}/%{name}/ --bindir=${MPI_BIN} --mandir=${MPI_MAN} --program-suffix=${MPI_SUFFIX} CC=mpicc %make_build %{_mpich_unload} popd %install %make_install -C openmpi %make_install -C mpich # Fix shebang sed -i '1s@/usr/bin/env bash@/bin/bash@' %{buildroot}/%{_libdir}/*mpi*/bin/mpibash* sed -i '1s@/usr/bin/env mpibash@%{_libdir}/openmpi/bin/mpibash_openmpi@' %{buildroot}/%{_libdir}/openmpi/lib/share/%{name}/examples/* %{buildroot}/%{_libdir}/openmpi/bin/m* sed -i '1s@/usr/bin/env mpibash@%{_libdir}/mpich/bin/mpibash_mpich@' %{buildroot}/%{_libdir}/mpich/lib/share/%{name}/examples/* %{buildroot}/%{_libdir}/mpich/bin/m* %files openmpi %{_libdir}/openmpi/bin/m* %{_mandir}/openmpi*/man1/m* %{_libdir}/openmpi/lib/%{name} %files openmpi-examples %{_libdir}/openmpi/lib/share/%{name}/examples %files mpich %{_libdir}/mpich/bin/m* %{_mandir}/mpich*/man1/m* %{_libdir}/mpich/lib/%{name} %files mpich-examples %{_libdir}/mpich/lib/share/%{name}/examples %changelog * Mon Nov 26 2018 Orion Poplawski - 1.3-5 - Rebuild for openmpi 4.0 * Fri Jul 13 2018 Fedora Release Engineering - 1.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Thu Feb 08 2018 Fedora Release Engineering - 1.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Mon Dec 11 2017 Christoph Junghans - 1.3-2 - Fix shebang in scripts to contain _${MPI_SUFFIX} * Thu Dec 07 2017 Christoph Junghans - 1.3-1 - Version bump to v1.3, enable libcircle support * Tue Nov 14 2017 Christoph Junghans - 1.2-1 - Initial commit of v1.2