File mvapich2.spec of Package mvapich2
#
# spec file for package mvapich2 (Version 1.2p1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: mvapich2
Summary: OSU MVAPICH2 MPI package
Version: 1.2p1
Release: 2
License: BSD 3-Clause
Group: Development/Libraries/Parallel
Source0: %{name}-%{version}.tar.bz2
Patch0: mvapich2-1.2-build_fixes.patch
Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: gcc-c++ gcc-fortran libibcommon-devel libibumad-devel libibverbs-devel librdmacm-devel mpi-selector python-devel xorg-x11-devel
Requires: mpi-selector
ExcludeArch: s390 s390x
# bug437293
%ifarch ppc64
Obsoletes: mvapich2-64bit
%endif
#
%define _prefix /usr/%_lib/mpi/gcc/%name
%description
This is an MPI-2 implementation which includes all MPI-1 features. It
is based on MPICH2 and MVICH.
%package devel
License: BSD 3-Clause
Group: Development/Libraries/Parallel
Summary: OSU MVAPICH2 MPI package
Requires: %{name} = %{version} libibverbs-devel libibumad-devel libibcommon-devel librdmacm-devel
# bug437293
%ifarch ppc64
Obsoletes: mvapich2-devel-64bit
%endif
%description devel
This is an MPI-2 implementation which includes all MPI-1 features. It
is based on MPICH2 and MVICH.
%prep
%setup -q
%patch0
#%patch1
%build
export LIBS="-lrdmacm -libverbs -libumad"
export CFLAGS="$RPM_OPT_FLAGS -DUSE_HEADER_CACHING -DONE_SIDED -DMPID_USE_SEQUENCE_NUMBERS -D_SHMEM_COLL_ -DRDMA_CM -DDISABLE_PTMALLOC"
# ./configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir --sysconfdir=%_sysconfdir --with-rdma=gen2 --enable-sharedlibs=gcc CC=gcc CXX=g++ F77=gfortran F90=gfortran
./configure --prefix=%_prefix --libdir=%_libdir --mandir=%_mandir --sysconfdir=%_sysconfdir --with-rdma=gen2 --enable-sharedlibs=gcc --without-mpe
make
%install
make DESTDIR=$RPM_BUILD_ROOT install
# Additionally, create the mpivars.[c]sh files.
cat > $RPM_BUILD_ROOT/%_prefix/bin/mpivars.csh <<EOF
if (\$?path) then
if ( "\${path}" !~ *%{_prefix}/bin* ) then
set path = ( %{_prefix}/bin \$path )
endif
else
set path = ( %{_prefix}/bin )
endif
if ("1" == "\$?LD_LIBRARY_PATH") then
if ("\$LD_LIBRARY_PATH" !~ *%{_prefix}/lib) then
setenv LD_LIBRARY_PATH %{_prefix}/lib:\${LD_LIBRARY_PATH}
endif
else
setenv LD_LIBRARY_PATH %{_prefix}/lib
endif
if (\$?MANPATH) then
if ( "\${MANPATH}" !~ *%{_prefix}/man* ) then
setenv MANPATH %{_prefix}/man:\$MANPATH
endif
else
setenv MANPATH %{_prefix}/man:
endif
EOF
cat > $RPM_BUILD_ROOT/%_prefix/bin/mpivars.sh <<EOF
if ! echo \${PATH} | grep -q %{_prefix}/bin ; then
PATH=%{_prefix}/bin:\${PATH}
fi
if ! echo \${LD_LIBRARY_PATH} | grep -q %{_prefix}/lib ; then
export LD_LIBRARY_PATH=%{_prefix}/lib:\${LD_LIBRARY_PATH}
fi
if ! echo \${MANPATH} | grep -q %{_prefix}/man ; then
MANPATH=%{_prefix}/man:\${MANPATH}
fi
EOF
%clean
rm -rf ${RPM_BUILD_ROOT}
%post
/sbin/ldconfig
/usr/bin/mpi-selector \
--register %{name}-%{version} \
--source-dir %{_bindir} \
--yes
%postun
/sbin/ldconfig
/usr/bin/mpi-selector --unregister %{name}-%{version} --yes
%files
%defattr(-, root, root)
# %_prefix
%config %_sysconfdir/*
%dir %_prefix
%dir %_prefix/share
%dir %_prefix/share/man
%dir %_prefix/www
%dir %_libdir
%dir %_libdir/pkgconfig
%_bindir
%_mandir/man1
%_prefix/www/index.htm
%_prefix/www/www1
%_libdir/*.so.*
%files devel
%defattr(-,root,root)
%_mandir/man3
%_prefix/www/www3
%_libdir/*.a
%_libdir/*.so
%_includedir
%attr(644, root, root) %_libdir/pkgconfig/*.pc
%changelog
* Mon Jun 15 2009 ro@suse.de
- drop unused buildrequires for sysfsutils
* Wed Dec 10 2008 olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
* Tue Dec 09 2008 jjolly@suse.de
- Updated to 1.2p1 release from OFED 1.4 GA
- Fix shared-memory communication issue for AMD Barcelona systems.
- Ignore the last bit of the pkey and remove the pkey_ix option since the
index can be different on different machines.
- Fix data types for memory allocations. Thanks for Dr. Bill Barth from TACC
for the patches.
- Fix a bug when MV2_NUM_HCAS is larger than the number of active HCAs.
- Allow builds on architectures for which tuning parameters do not exist.
- Always build and install mpirun_rsh in addition to the process manager(s)
selected through the --with-pm mechanism.
- Cleaner job abort handling
- Ability to detect the path to mpispawn if the Linux proc filesystem is
available.
- Added Totalview debugger support
- Stdin is only available to rank 0. Other ranks get /dev/null.
- Add sequence numbers for RPUT and RGET finish packets.
- Increase the number of allowed nodes for shared memory broadcast to 4K.
- Use /dev/shm on Linux as the default temporary file path for shared memory
communication. Thanks for Doug Johnson@OSC for the patch.
- MV2_DEFAULT_MAX_WQE has been replaced with MV2_DEFAULT_MAX_SEND_WQE and
MV2_DEFAULT_MAX_RECV_WQE for send and recv wqes, respectively.
- Fix compilation warnings.
- Properly handle the scenario in shared memory broadcast code when the
datatypes of different processes taking part in broadcast are different.
- Fix a bug in Checkpoint-Restart code to determine whether a connection is a
shared memory connection or a network connection.
- Support non-standard path for BLCR header files.
- Increase the maximum heap size to avoid race condition in realloc().
- Use int32_t for rank for larger jobs with 32k processes or more.
- Improve mvapich2-1.2 bandwidth to the same level of mvapich2-1.0.3.
- An error handling patch for uDAPL interface. Thanks for Nilesh Awate for
the patch.
- Explicitly set some of the EP attributes when on demand connection is used
in uDAPL interface.
- Scalable and robust daemon-less job startup
- Enhanced and robust mpirun_rsh framework (non-MPD-based) to
provide scalable job launching on multi-thousand core clusters
- Available for OpenFabrics (IB and iWARP) and uDAPL interfaces
(including Solaris)
- Adding support for intra-node shared memory communication with Checkpoint-restart
- Allows best performance and scalability with fault-tolerance
support
- Enhancement to software installation
- Change to full autoconf-based configuration
- Adding an application (mpiname) for querying the MVAPICH2 library
version and configuration information
- Enhanced processor affinity using PLPA for multi-core architectures
- Allows user-defined flexible processor affinity
- Enhanced scalability for RDMA-based direct one-sided communication
with less communication resource
- Shared memory optimized MPI_Bcast operations
- Optimized and tuned MPI_Alltoall
- Change the default MV2_DAPL_PROVIDER to OpenIB-cma
- Remove extraneous parameter is_blocking from the gen2 interface for
MPIDI_CH3I_MRAILI_Get_next_vbuf
- Explicitly name unions in struct ibv_wr_descriptor and reference the
members in the code properly.
- Change "inline" functions to "static inline" properly.
- Increase the maximum number of buffer allocations for communication
intensive applications
- Corrections for warnings from the Sun Studio 12 compiler.
- If malloc hook initialization fails, then turn off registration
cache
- Add MV_R3_THESHOLD and MV_R3_NOCACHE_THRESHOLD which allows
R3 to be used for smaller messages instead of registering the
buffer and using a zero-copy protocol.
- Fixed an error in message coalescing.
- Setting application initiated checkpoint as default if CR is turned on.
- Enhance udapl initializaton, set all ep_attr fields properly.
- Fixing a bug that miscalculates the receive size in case of complex
datatype is used.
- Minor patches for fixing (i) NBO for rdma-cm ports and (ii) rank
variable usage in DEBUG_PRINT in rdma-cm.c
- Message coalescing support to enable reduction of per Queue-pair
send queues for reduction in memory requirement on large scale
clusters. This design also increases the small message messaging
rate significantly. Available for Open Fabrics Gen2-IB.
- Hot-Spot Avoidance Mechanism (HSAM) for alleviating
network congestion in large scale clusters. Available for
Open Fabrics Gen2-IB.
- RDMA CM based on-demand connection management for large scale
clusters. Available for OpenFabrics Gen2-IB and Gen2-iWARP.
- uDAPL on-demand connection management for large scale clusters.
Available for uDAPL interface (including Solaris IB implementation).
- RDMA Read support for increased overlap of computation and
communication. Available for OpenFabrics Gen2-IB and Gen2-iWARP.
- Application-initiated system-level (synchronous) checkpointing in
addition to the user-transparent checkpointing. User application can
now request a whole program checkpoint synchronously with BLCR by
calling special functions within the application. Available for
OpenFabrics Gen2-IB.
- Network-Level fault tolerance with Automatic Path Migration (APM)
for tolerating intermittent network failures over InfiniBand.
Available for OpenFabrics Gen2-IB.
- Integrated multi-rail communication support for OpenFabrics
Gen2-iWARP.
- Blocking mode of communication progress. Available for OpenFabrics
Gen2-IB.
- Fix for hang while using IMB with -multi option.
- Fix for hang in memory allocations > 2^31 - 1.
- Fix for RDMA_CM finalize rdma_destroy_id failure.
- Added Timeout env variable for RDMA_CM ARP.
- Fix for RDMA_CM invalid event in finalize.
- Fix for shmem memory collectives related memory leaks
- Updated src/mpi/romio/adio/ad_panfs/Makefile.in include path to find mpi.h.
- Fixed header caching error on handling datatype messages with small vector
sizes.
- Change the finalization protocol for UD connection manager.
- Fix for the "command line too long" problem.
- Change the CKPT handling to invalidate all unused registration cache.
- Added ofed 1.2 interface change patch for iwarp/rdma_cm
- Fix for rdma_cm_get_event err in finalize.
- Fix for when MV2_IBA_HCA is used.
* Mon Dec 01 2008 ro@suse.de
- add ExcludeArch for s390 s390x
* Thu Oct 30 2008 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Tue Aug 21 2007 kejohnson@suse.de
- Updated source tarball to OFED-1.2.5 release.
* Tue Aug 07 2007 hvogel@suse.de
- Update to version from OFED 1.2c
* Tue Jul 10 2007 hvogel@suse.de
- Initial Package, Version 0.9.8