diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2011-06-30 20:27:30 +0400 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2011-06-30 20:27:30 +0400 |
commit | e234874cf1d691f83ba3cd3755226b8a9e53a367 (patch) | |
tree | dfe7769e042fc881f960721c8ac3290a0c729bdb /sys-cluster/mvapich2 | |
parent | [virtual/mpi] Update virtual mpi (diff) | |
download | sci-e234874cf1d691f83ba3cd3755226b8a9e53a367.tar.gz sci-e234874cf1d691f83ba3cd3755226b8a9e53a367.tar.bz2 sci-e234874cf1d691f83ba3cd3755226b8a9e53a367.zip |
[sys-cluster/mvapich2] Move and version bump for mvapich2
(Portage version: 2.2.0_alpha41/git/Linux x86_64, signed Manifest commit with key F82F92E6)
Diffstat (limited to 'sys-cluster/mvapich2')
-rw-r--r-- | sys-cluster/mvapich2/Manifest | 24 | ||||
-rw-r--r-- | sys-cluster/mvapich2/files/eselect.mpi.mvapich2 | 8 | ||||
-rw-r--r-- | sys-cluster/mvapich2/metadata.xml | 14 | ||||
-rw-r--r-- | sys-cluster/mvapich2/mvapich2-1.6.ebuild | 155 |
4 files changed, 201 insertions, 0 deletions
diff --git a/sys-cluster/mvapich2/Manifest b/sys-cluster/mvapich2/Manifest new file mode 100644 index 000000000..2be9ed9d1 --- /dev/null +++ b/sys-cluster/mvapich2/Manifest @@ -0,0 +1,24 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +AUX eselect.mpi.mvapich2 231 RMD160 a3f09385b6f2c4872398758f8195c156e07b3921 SHA1 660be0ad7d06a386173c714942bca32b01908aa9 SHA256 363bd1efd2bf2593ee34145cc9e6f0c9705c204368c380d07088ba0d041b446d +DIST mvapich2-1.6.tgz 23239787 RMD160 8a254c90773535fd9f5099472042e6b4213a9598 SHA1 4b69c8f17a760a861fe91be0473143ddfc5e1ebb SHA256 e657ba2eaf43119fec70859677a08bb8138a8bf18c1f375891fed0b7c77aa28d +EBUILD mvapich2-1.6.ebuild 4286 RMD160 a08b8175f4e7cf5bc23861f7dfb0de6addef000b SHA1 e8cda37ee2695766e362b8894673170ddc91f732 SHA256 7979c7660b220e5e6cddfda370fbfd38d28de1c45820f731d3023d56dbc60dd1 +MISC metadata.xml 619 RMD160 d5e91eed039a36ad9bba07f8e105b88d6a1d0474 SHA1 3fb8063b009c9ea3c821229411cedf1f93a9909d SHA256 16fa6109f915534a90483380520a27b4233b080a1b5c16b0392275b3bed7837c +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.17 (GNU/Linux) + +iQIcBAEBCAAGBQJODKPyAAoJEOf+E+/4L5LmOIkP/A/aX7HGRJnf8PC/7kihcwTn +5JNJQxNqpb1UXWV5Xy0ZF28oxMu2fK7SPW+1lijAgIOXy8gNegZ5jc5hD1tHxhdw +tOZjIuq+u50oGbC5aX5cgrxeeEvUAxiN3lji74rfN8BgLcl/8nJAeSN3e7ZlEa4N +lvJTGrSjWO+5f2QeT+Yb/NlB/O9WQNngTlvwxs1jS3EMIctkbrpQY3foFGRpMnbe +uuqnbre2ECFEVnf9keM4w844AL6MlBOS0qarM6gtb4J5r7xJma6nQ5eTuZPeNHxM +Oy3wQEI8U4elK5j8QHUuPfL9bljIsDZqb484Yv8NJiNZvHD53rqWusJHC8iZOhjk +rnrWHYg7yAf4mBH4OJAulTi5jk6If2mKKYTgKBMkyOAQeBY4Fs2L627253+booqj +xlrSYezTh4iUYMNNmNwgEpU34VZWJ1a/R4lxlXa50FGud5592KGtW1OyW5uRPShZ +dZwDVO3Z7PvyEqUpvvJzidqdcqvLv8xKmB+G1JNlh1Ptvo1gsy3LpcRRDjjtuBuO +oRN7t4A6lHcFg6/Hyg7DTbiU12e8un3a8q+RJDtTZoVtoOpKYsolsALycPHC3gdA +P8K9MmKpr4EfwkgqGWSb7HvUztLM37JW+utDFTvtGvu+Ru9XZlF1mHWD8C3dFZBb +c2ezewCenL+RBCNpham2 +=aQwG +-----END PGP SIGNATURE----- diff --git a/sys-cluster/mvapich2/files/eselect.mpi.mvapich2 b/sys-cluster/mvapich2/files/eselect.mpi.mvapich2 new file mode 100644 index 000000000..d1d2131a1 --- /dev/null +++ b/sys-cluster/mvapich2/files/eselect.mpi.mvapich2 @@ -0,0 +1,8 @@ +MPI_CC=@ROOT@/usr/bin/mpicc +MPI_CXX=@ROOT@/usr/bin/mpic++ +MPI_F77=@ROOT@/usr/bin/mpif77 +MPI_F90=@ROOT@/usr/bin/mpif90 +MPI_BUILT_WITH=@BUILT_WITH@ +PATH=@ROOT@/usr/bin +MANPATH=@ROOT@/usr/share/man +LD_LIBRARY_PATH=@ROOT@/usr/@LIBDIR@ diff --git a/sys-cluster/mvapich2/metadata.xml b/sys-cluster/mvapich2/metadata.xml new file mode 100644 index 000000000..a5a004383 --- /dev/null +++ b/sys-cluster/mvapich2/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>cluster</herd> + <longdescription> +MVAPICH2 MPI-over-infiniband package auto-configured for OpenIB. +</longdescription> + <use> + <flag name="large-cluster">Automatically generated description for large-cluster</flag> + <flag name="medium-cluster">Automatically generated description for medium-cluster</flag> + <flag name="rdma">Automatically generated description for rdma</flag> + <flag name="romio">Automatically generated description for romio</flag> + </use> +</pkgmetadata> diff --git a/sys-cluster/mvapich2/mvapich2-1.6.ebuild b/sys-cluster/mvapich2/mvapich2-1.6.ebuild new file mode 100644 index 000000000..b9c7ed4fa --- /dev/null +++ b/sys-cluster/mvapich2/mvapich2-1.6.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit fortran-2 mpi + +DESCRIPTION="MVAPICH2 MPI-over-infiniband package auto-configured for OpenIB" +HOMEPAGE="http://mvapich.cse.ohio-state.edu/" +SRC_URI="${HOMEPAGE}/download/mvapich2/mvapich2-${PV/_/-}.tgz" + +SLOT="0" +LICENSE="BSD" +KEYWORDS="~x86 ~amd64" +IUSE="debug fortran large-cluster medium-cluster rdma romio threads" + +RDEPEND=" + || ( + ( + sys-infiniband/libibverbs + sys-infiniband/libibumad + sys-infiniband/libibmad + rdma? ( sys-infiniband/librdmacm ) ) + sys-infiniband/openib-userspace )" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/mvapich2-${PV/_/-}" + +pkg_setup() { + fortran-2_pkg_setup + MPI_ESELECT_FILE="eselect.mpi.mvapich2" + + if [ -z "${MVAPICH_HCA_TYPE}" ]; then + elog "${PN} needs to know which HCA it should optimize for. This is" + elog "passed to the ebuild with the variable, \${MVAPICH_HCA_TYPE}." + elog "Please choose one of: _MLX_PCI_EX_SDR_, _MLX_PCI_EX_DDR_," + elog "_MLX_PCI_X, _PATH_HT_, or _IBM_EHCA_." + elog "See make.mvapich2.detect in ${S} for more information." + die "MVAPICH_HCA_TYPE undefined" + fi + + case ${ARCH} in + amd64) + if grep Intel /proc/cpuinfo &>/dev/null; then + BUILD_ARCH=-D_EM64T_ + else + BUILD_ARCH=-D_X86_64_ + fi + ;; + x86) + BUILD_ARCH=-D_IA32_ + ;; + ia64) + BUILD_ARCH=-D_IA64_ + ;; + ppc64) + BUILD_ARCH=-D_PPC64_ + ;; + *) + die "unsupported architecture: ${ARCH}" + ;; + esac +} + +src_unpack() { + unpack ${A} + cd "${S}" + einfo "Disabling examples" + # Examples are always compiled with the default 'all' target. This + # causes problems when we don't build support for everything, including + # threads, mpe2, etc. So we're not going to build them. + sed -i 's:.*cd examples && ${MAKE} all.*::' Makefile.in +} + +src_compile() { + local c="--with-device=osu_ch3:mrail + --with-rdma=gen2 + --with-pm=mpd + $(use_enable romio) + --with-mpe=no" + + # TODO Shared libs should build with this, but they don't + # --enable-shared=gcc" + + local enable_srq + local vcluster=-D_SMALL_CLUSTER + + use large-cluster && vcluster=-D_LARGE_CLUSTER + use medium-cluster && vcluster=-D_MEDIUM_CLUSTER + [ "${MVAPICH_HCA_TYPE}" == "_MLX_PCI_X_" ] && enable_srq="-DSRQ" + + if use rdma; then + append-ldflags "-lrdmacm" + append-flags "-DADAPTIVE_RDMA_FAST_PATH -DRDMA_CM" + fi + append-ldflags "-libverbs -libumad -libmad" + + append-flags "${BUILD_ARCH} -DUSE_INLINE -D_SMP_ -D_GNU_SOURCE" + append-flags "${enable_srq} -DUSE_HEADER_CACHING -DLAZY_MEM_UNREGISTER" + append-flags "-DONE_SIDED -D${MVAPICH_HCA_TYPE} ${vcluster}" + append-flags "-DMPID_USE_SEQUENCE_NUMBERS -DUSE_MPD_RING" + + use debug && c="${c} --enable-g=all --enable-debuginfo" + + if use threads; then + c="${c} --enable-threads=multiple --with-thread-package=pthreads" + append-flags "-pthread" + else + c="${c} --with-thread-package=none" + fi + + # enable f90 support for appropriate compilers + if use fortran; then + case "$(tc-getFC)" in + gfortran|ifort|f95) + c="${c} --enable-f77 --enable-f90";; + g77|f77|f2c) + c="${c} --enable-f77 --disable-f90";; + esac + else + c="${c} --disable-f77 --disable-f90" + fi + + sed -i \ + -e 's/ ${exec_prefix}/ ${DESTDIR}${exec_prefix}/' \ + -e 's/ ${libdir}/ ${DESTDIR}${libdir}/' \ + ${S/-beta2/}/Makefile.in + sed -i '/bindir/s/ ${bindir}/ ${DESTDIR}${bindir}/' ${S/-beta2/}/src/pm/mpd/Makefile.in + cd ${S/-beta2/} + + ! mpi_classed && c="${c} --sysconfdir=/etc/${PN}" + econf $(mpi_econf_args) ${c} + + # http://www.mcs.anl.gov/research/projects/mpich2/support/index.php?s=faqs#parmake + # https://trac.mcs.anl.gov/projects/mpich2/ticket/297 + emake -j1 || die + +} + +src_install() { + emake DESTDIR="${D}"|| die + mpi_dodoc CHANGES_MPICH2 COPYRIGHT COPYRIGHT_MVAPICH2 LICENSE.TXT \ + README* RELEASE_NOTES* + mpi_imp_add_eselect +} + +pkg_postinst() { + einfo "To allow normal users to use infiniband, it is necessary to" + einfo "increase the system limits on locked memory." + einfo "You must increase the kernel.shmmax sysctl value, and increase" + einfo "the memlock limits in /etc/security/limits.conf. i.e.:" + echo + einfo "echo 'kernel.shmmax = 512000000' >> /etc/sysctl.conf" + einfo "echo 512000000 > /proc/sys/kernel/shmmax" + einfo "echo -e '* soft memlock 500000\n* hard memlock 500000' > /etc/security/limits.conf" +} |