# Copyright (c) 2002-2008, The Ohio State University. All rights # reserved. # # The MVAPICH software package is developed by the team members of The # Ohio State University's Network-Based Computing Laboratory (NBCL), # headed by Professor Dhabaleswar K. (DK) Panda. # # Contact: # Prof. Dhabaleswar K. (DK) Panda # Dept. of Computer Science and Engineering # The Ohio State University # 2015 Neil Avenue # Columbus, OH - 43210-1277 # Tel: (614)-292-5199; Fax: (614)-292-2911 # E-mail: panda@cse.ohio-state.edu # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # (1) Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # (2) Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # (3) Neither the name of The Ohio State University nor the names of # their contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Macro setup section. # We don't want debug packages right now. %define debug_package %{nil} # Define any macros with default values if they have not been specified. %{!?_name: %define _name mvapich2} %{!?impl: %define impl ofa} %{!?auto_req: %define auto_req 1} %define have_mpi_selector 0 %{?mpi_selector: %define have_mpi_selector 1} #OCS %define _modroot /usr/share/Modules/modulefiles/mpi Summary: OSU MVAPICH2 MPI package License: BSD Group: Development/Libraries Name: %{_name} Prefix: %{_prefix} Release: 4000pcc Source: mvapich2-1.2.tgz URL: http://mvapich.cse.ohio-state.edu/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Version: 1.2 #OCS Source1: mvapich2-infiniband-gnu-module # The requires are either handled automatically, or with simple RPM package # specifications. %if %{auto_req} Autoreq: 1 %else Autoreq: 0 # These are defines that help out below. %define OFA %(if (echo %{impl} |grep "ofa" >/dev/null); then echo -n '1'; else echo -n '0'; fi) %define UDAPL %(if (echo %{impl} |grep "udapl" >/dev/null); then echo -n '1'; else echo -n '0'; fi) # Set the Requires values based on the implemenation chosen. %if %{OFA} Requires: libibumad libibverbs %{!?blcr: librdmacm} %{?mpi-selector: mpi-selector} %endif %if %{UDAPL} Requires: dapl %{?mpi-selector: mpi-selector} %endif %endif %description This is an MPI-2 implementation which includes all MPI-1 features. It is based on MPICH2 and MVICH. %prep %setup -q -n mvapich2-%{version} %build # Apparently optimization flags are added by rpm on the PPC64 platform. # This should remove these flags and allow our build process to work correctly. export -n CFLAGS CPPFLAGS CXXFLAGS FFLAGS LDFLAGS ./configure --prefix=%_prefix %{?rdma} %{?ib_include} %{?ib_libpath} %{?blcr: --enable-blcr} %{?blcr_include} %{?blcr_libpath} %{?dapl_include} %{?dapl_libpath} %{?cluster_size} %{?io_bus} %{?link_speed} %{?dapl_provider} %{?shared_libs: --enable-sharedlibs=gcc} %{!?romio: --disable-romio} %{?comp_env} make for f in bin/mpicc bin/mpich2version bin/mpicxx bin/mpif77 bin/mpif90 \ etc/mpicxx.conf etc/mpif77.conf etc/mpif90.conf etc/mpicc.conf; do if [ -f $f ]; then sed -i "s^prefix=${RPM_BUILD_ROOT}^prefix=^g" $f fi done %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT [ -f $RPM_BUILD_ROOT/%_prefix/sbin/mpeuninstall ] && sed -i "s^${RPM_BUILD_ROOT}^^g" $RPM_BUILD_ROOT/%_prefix/sbin/mpeuninstall # Additionally, create the mpivars.[c]sh files. cat > $RPM_BUILD_ROOT/%_prefix/bin/mpivars.csh < $RPM_BUILD_ROOT/%_prefix/bin/mpivars.sh </dev/null 2>/dev/null %endif %files %defattr(-,root,root,-) %{_prefix} #OCS %{_modroot}/%{name} %changelog * Sun Nov 9 2008 Mehdi Bozzo-Rey - minor changes for OCS integration * Tue Oct 14 2008 Jonathan Perkins - Detect path to mpispawn if /proc filesystem is available. - Converting "SHMEM_BCAST_LEADERS" macro to an environment variable. * Thu Oct 09 2008 Jonathan Perkins - Change MV2_DEFAULT_MAX_WQE from 200 to 64 to reduce memory usage. - Fix mpirun_rsh ssh stdin bug. - Always build and install mpirun_rsh in addition to the process manager(s) selected through the --with-pm mechanism. - Remove various compilation warnings. * Tue Sep 24 2008 Jonathan Perkins - Change naming scheme of srpm since it's now based off of a subversion branch and not a release tarball. * Tue Sep 20 2008 Jonathan Perkins - Base srpm on https://mvapich.cse.ohio-state.edu/svn/mpi/mvapich2/trunk to capture latest commits instead of applying patches to mvapich2-1.2rc2. * Thu Sep 11 2008 Jonathan Perkins - Add variable substitution to configure line to all for selection of process manager. * Tue Sep 09 2008 Jonathan Perkins - Remove configure options that force configuration files and man pages into the system conf and man directories. Removing this allows multiple versions of mvapich2 rpms to be installed. This is useful for OFED where users may want a version of mvapich2 built with several compilers. * Mon Sep 08 2008 Jonathan Perkins - The previous ppc64 patch was incomplete. Replaced with correct patch. * Sun Sep 07 2008 Jonathan Perkins - Repackage with fix for ppc64 and other unaccounted for platforms. * Mon Aug 25 2008 Jonathan Perkins - Replace \%configure with explicit ./configure to resolve build issues. * Sat Aug 23 2008 Jonathan Perkins - Fix false positive for enabling blcr. - Remove unused variables and commented code. * Fri Aug 22 2008 Jonathan Perkins - Refactor spec file to account for our move to using configure directly for MVAPICH2-1.2rc1 and later. * Sun May 04 2008 Jonathan Perkins - Created initial MVAPICH2 1.0.3 SRPM with IB and iWARP support.