aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-infiniband/openib-mvapich2/openib-mvapich2-0.9.5.ebuild')
-rw-r--r--sys-infiniband/openib-mvapich2/openib-mvapich2-0.9.5.ebuild115
1 files changed, 115 insertions, 0 deletions
diff --git a/sys-infiniband/openib-mvapich2/openib-mvapich2-0.9.5.ebuild b/sys-infiniband/openib-mvapich2/openib-mvapich2-0.9.5.ebuild
new file mode 100644
index 000000000..09be925a2
--- /dev/null
+++ b/sys-infiniband/openib-mvapich2/openib-mvapich2-0.9.5.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# WARNING: this script is interactive - it requires user-input once to verify
+# the type of HCA to configure for. This needs to be fixed to take out the
+# interactivity.
+
+SLOT="0"
+LICENSE="BSD"
+
+KEYWORDS="~x86 ~amd64"
+
+DESCRIPTION="MVAPICH2 MPI-over-infiniband package auto-configured for OpenIB."
+
+HOMEPAGE="http://nowlab.cse.ohio-state.edu/projects/mpi-iba/"
+SRC_URI="http://nowlab.cse.ohio-state.edu/projects/mpi-iba/download-mvapich2/mvapich2-$PV.tar.gz"
+
+S="${WORKDIR}/mvapich2-$PV"
+
+IUSE="threads debug medium-cluster large-cluster"
+
+DEPEND="
+ || ( sys-cluster/libibverbs
+ sys-cluster/openib-userspace )
+ || ( sys-cluster/librdmacm
+ sys-cluster/openib-userspace )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ ARCH=
+ VCLUSTER=_SMALL_CLUSTER
+ HAVE_MPD_RING="-DUSE_MPD_RING"
+
+ if use amd64; then
+ if [ -n "`grep 'model name' </proc/cpuinfo |grep Intel`" ]; then
+ ARCH=_EM64T_
+ else
+ ARCH=_X86_64_
+ fi
+ elif use x86; then
+ ARCH=_IA32_
+ elif use ia64; then
+ ARCH=_IA64_
+ elif use ppc64; then
+ ARCH=_PPC64_
+ else
+ die "unsupported architecture"
+ fi
+}
+
+src_compile() {
+ if use large-cluster; then
+ VCLUSTER=_LARGE_CLUSTER
+ elif use medium-cluster; then
+ VCLUSTER=_MEDIUM_CLUSTER
+ fi
+
+ source "${S}/make.mvapich2.detect"
+
+ # Check if SRQ is valid. for this platform.
+ ENABLE_SRQ="-DSRQ"
+
+ if [ "$HCA_COMPILE_FLAG" == "_MLX_PCI_X_" ]; then
+ ENABLE_SRQ=""
+ fi
+
+ export LIBS="-libverbs -lpthread"
+ export CFLAGS="${CFLAGS} -D${ARCH} \
+ -DUSE_INLINE -D_SMP_ -DADAPTIVE_RDMA_FAST_PATH \
+ -D_GNU_SOURCE -DSRQ -DUSE_HEADER_CACHING -DLAZY_MEM_UNREGISTER \
+ -DONE_SIDED -D${HCA_COMPILE_FLAG} -DMPID_USE_SEQUENCE_NUMBERS \
+ ${HAVE_MPD_RING} -D${VCLUSTER}"
+
+ local myconf
+ use debug && myconf="$myconf --enable-g=all --enable-debuginfo"
+ if [ $(use threads) ]; then
+ myconf="$myconf --enable-threads=multiple"
+ else
+ : # myconf="$myconf --enable-threads=serialized"
+ fi
+ sed -i -e 's/ ${exec_prefix}/ ${DESTDIR}${exec_prefix}/' \
+ -e 's/ ${libdir}/ ${DESTDIR}${libdir}/' ./Makefile.in
+ sed -i '/bindir/s/ ${bindir}/ ${DESTDIR}${bindir}/' ./src/pm/mpd/Makefile.in
+ ./configure \
+ --prefix=/opt/mvapich2-gen2 \
+ --host=${CHOST} \
+ --infodir=/usr/share/info \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --with-device=osu_ch3:mrail --with-rdma=gen2 --with-pm=mpd \
+ --disable-romio --without-mpe \
+ $myconf ${EXTRA_ECONF} \
+ || die "could not configure"
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "install failed"
+ doenvd "${FILESDIR}/99openib-mvapich2"
+ dodoc CHANGES_MPICH2 COPYRIGHT COPYRIGHT_MVAPICH2 LICENSE.TXT \
+ README* RELEASE_NOTES*
+}
+
+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"
+}
+