diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2011-07-03 23:57:26 +0000 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2011-07-03 23:57:26 +0000 |
commit | 1c8f784594c7a6d9b6ee8e69a751bfbd3e82086f (patch) | |
tree | f13ae5c8b41f08984e2cb92aad0c8758bb5b9167 /sys-cluster | |
parent | Add blocker to slurm and add maui scheduler to rdepend (diff) | |
download | gentoo-2-1c8f784594c7a6d9b6ee8e69a751bfbd3e82086f.tar.gz gentoo-2-1c8f784594c7a6d9b6ee8e69a751bfbd3e82086f.tar.bz2 gentoo-2-1c8f784594c7a6d9b6ee8e69a751bfbd3e82086f.zip |
[sys-cluster/openmpi] Add slurm support
(Portage version: 2.2.0_alpha43/cvs/Linux x86_64)
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/openmpi/ChangeLog | 7 | ||||
-rw-r--r-- | sys-cluster/openmpi/metadata.xml | 1 | ||||
-rw-r--r-- | sys-cluster/openmpi/openmpi-1.5.3-r2.ebuild | 119 |
3 files changed, 126 insertions, 1 deletions
diff --git a/sys-cluster/openmpi/ChangeLog b/sys-cluster/openmpi/ChangeLog index d7e8ae1a0515..b494f7f289b5 100644 --- a/sys-cluster/openmpi/ChangeLog +++ b/sys-cluster/openmpi/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-cluster/openmpi # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/openmpi/ChangeLog,v 1.89 2011/07/02 16:37:24 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/openmpi/ChangeLog,v 1.90 2011/07/03 23:57:26 alexxy Exp $ + +*openmpi-1.5.3-r2 (03 Jul 2011) + + 03 Jul 2011; Alexey Shvetsov <alexxy@gentoo.org> +openmpi-1.5.3-r2.ebuild: + Add slurm support 02 Jul 2011; Alexey Shvetsov <alexxy@gentoo.org> openmpi-1.5.3-r1.ebuild: Fix hwloc location detection diff --git a/sys-cluster/openmpi/metadata.xml b/sys-cluster/openmpi/metadata.xml index b7a50c2c915a..6e57dc7c39a8 100644 --- a/sys-cluster/openmpi/metadata.xml +++ b/sys-cluster/openmpi/metadata.xml @@ -12,6 +12,7 @@ <flag name='romio'>Build the ROMIO MPI-IO component</flag> <flag name='mpi-threads'>Enable MPI_THREAD_MULTIPLE</flag> <flag name='sctp'>Enable SCTP support</flag> + <flag name='slurm'>Add support for SLURM</flag> <flag name='vt'>Enable bundled VampirTrace support</flag> </use> </pkgmetadata> diff --git a/sys-cluster/openmpi/openmpi-1.5.3-r2.ebuild b/sys-cluster/openmpi/openmpi-1.5.3-r2.ebuild new file mode 100644 index 000000000000..438a812408ec --- /dev/null +++ b/sys-cluster/openmpi/openmpi-1.5.3-r2.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/openmpi/openmpi-1.5.3-r2.ebuild,v 1.1 2011/07/03 23:57:26 alexxy Exp $ + +EAPI=4 +inherit eutils fortran-2 multilib flag-o-matic toolchain-funcs + +MY_P=${P/-mpi} +S=${WORKDIR}/${MY_P} + +DESCRIPTION="A high-performance message passing library (MPI)" +HOMEPAGE="http://www.open-mpi.org" +SRC_URI="http://www.open-mpi.org/software/ompi/v1.5/downloads/${MY_P}.tar.bz2" +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux" +IUSE="+cxx elibc_FreeBSD fortran heterogeneous infiniband ipv6 mpi-threads pbs + romio sctp slurm threads vt" + +REQUIRED_USE="^^ ( + ( !slurm !pbs ) + ( slurm !pbs ) + ( !slurm pbs ) + )" + +RDEPEND=" + fortran? ( virtual/fortran ) + pbs? ( sys-cluster/torque ) + infiniband? ( sys-infiniband/openib ) + sctp? ( net-misc/lksctp-tools ) + vt? ( + !dev-libs/libotf + !app-text/lcdf-typetools + ) + elibc_FreeBSD? ( dev-libs/libexecinfo ) + >=sys-apps/hwloc-1.1.1 + !sys-cluster/mpich + !sys-cluster/lam-mpi + !sys-cluster/mpich2 + !sys-cluster/mpiexec" +DEPEND="${RDEPEND}" + +pkg_setup() { + use fortran && fortran-2_pkg_setup + if use mpi-threads; then + echo + ewarn "WARNING: use of MPI_THREAD_MULTIPLE is still disabled by" + ewarn "default and officially unsupported by upstream." + ewarn "You may stop now and set USE=-mpi-threads" + echo + fi + + echo + elog "OpenMPI has an overwhelming count of configuration options." + elog "Don't forget the EXTRA_ECONF environment variable can let you" + elog "specify configure options if you find them necessary." + echo +} + +src_prepare() { + # Necessary for scalibility, see + # http://www.open-mpi.org/community/lists/users/2008/09/6514.php + if use threads; then + echo 'oob_tcp_listen_mode = listen_thread' \ + >> opal/etc/openmpi-mca-params.conf + fi + + epatch "${FILESDIR}"/openmpi-r24328.patch +} + +src_configure() { + local myconf=( + --sysconfdir="${EPREFIX}/etc/${PN}" + --enable-pretty-print-stacktrace + --enable-orterun-prefix-by-default + --with-hwloc="${EPREFIX}/usr" + ) + + if use mpi-threads; then + myconf+=(--enable-mpi-threads + --enable-progress-threads) + fi + + if use fortran; then + if [[ $(tc-getFC) =~ g77 ]]; then + myconf+=(--disable-mpi-f90) + elif [[ $(tc-getFC) =~ if ]]; then + # Enabled here as gfortran compile times are huge with this enabled. + myconf+=(--with-mpi-f90-size=medium) + fi + else + myconf+=(--disable-mpi-f90 --disable-mpi-f77) + fi + + ! use vt && myconf+=(--enable-contrib-no-build=vt) + + econf "${myconf[@]}" \ + $(use_enable cxx mpi-cxx) \ + $(use_enable romio io-romio) \ + $(use_enable heterogeneous) \ + $(use_with pbs tm) \ + $(use_with slurm) \ + $(use_enable ipv6) \ + $(use_with infiniband openib) \ + $(use_with sctp sctp) +} + +src_install () { + emake DESTDIR="${D}" install || die "make install failed" + # From USE=vt see #359917 + rm "${D}"/usr/share/libtool &> /dev/null + dodoc README AUTHORS NEWS VERSION || die +} + +src_test() { + # Doesn't work with the default src_test as the dry run (-n) fails. + cd "${S}" + emake -j1 check || die "emake check failed" +} |