aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-cluster/mvapich2/Manifest24
-rw-r--r--sys-cluster/mvapich2/files/eselect.mpi.mvapich28
-rw-r--r--sys-cluster/mvapich2/metadata.xml14
-rw-r--r--sys-cluster/mvapich2/mvapich2-1.6.ebuild155
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"
+}