Yes its possible. I add this ebuild after i test it
also i add infiniband support for openmpi

2009/1/30 Janusz Mordarski <janek@mol.uj.edu.pl>
Hi, is it finally possible to someone put new ebuild for openib-mvapich2, i send my ebuild for this package below, it works well, one think maybe is to add USE flag for SDR or DDR infiniband,

and register mvapich2 in virtual-mpi as one of the 'official' mpi's to select? it is easy i think and no effort (just add sys-cluster/openib-mvapich2 as a RDEPEND)

also there's something wrong with this new package responsible for programs such as ibdiagnet ibtrace... , paths are wrong, emerge installs these into /usr/bin but when i start those programs, they are looking for others in /usr/local/bin.. need to be fixed


openib-mvapich2.ebuild attachment:



--
Dept of Computational Biophysics & Bioinformatics,

Faculty of Biochemistry, Biophysics and Biotechnology,
Jagiellonian University,
ul. Gronostajowa 7,
30-387 Krakow, Poland.
Tel: (+48-12)-664-6380


# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit mpi fortran flag-o-matic eutils multilib toolchain-funcs

SLOT="0"
LICENSE="BSD"

KEYWORDS="~x86 ~amd64"

DESCRIPTION="MVAPICH2 MPI-over-infiniband package auto-configured for OpenIB."

HOMEPAGE="http://mvapich.cse.ohio-state.edu/"
SRC_URI="${HOMEPAGE}/download/mvapich2/mvapich2-${PV/_/-}p1.tgz"

S="${WORKDIR}/mvapich2-${PV/_/-}p1"

IUSE="debug medium-cluster large-cluster rdma romio threads fortran"

RDEPEND="
       || ( ( sys-cluster/libibverbs
                       sys-cluster/libibumad
                       sys-cluster/libibmad
                       rdma? ( sys-cluster/librdmacm ) )
                       sys-cluster/openib-userspace )
       $(mpi_imp_deplist)"
DEPEND="${RDEPEND}"

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
       use fortran && fortran_pkg_setup
}

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 vcluster="small"
use large-cluster   && vcluster="large"
use medium-cluster  && vcluster="medium"

       local c="--with-device=ch3:sock
       --with-link=DDR
               $(use_enable romio)
               --with-cluster-size=${vcluster}
       --enable-sharedlibs=gcc"

       local enable_srq
       [ "${MVAPICH_HCA_TYPE}" == "_MLX_PCI_X_" ] && enable_srq="-DSRQ"


       append-flags "${BUILD_ARCH}"
       append-flags "${enable_srq}"
       append-flags "-D${MVAPICH_HCA_TYPE}"

       use debug && c="${c} --enable-g=all --enable-debuginfo"

       if use threads; then
               c="${c} --enable-threads=multiple --with-thread-package=pthreads"
       else
               c="${c} --with-thread-package=none"
       fi

       # enable f90 support for appropriate compilers
       if use fortran; then
               case "${FORTRANC}" in
                       gfortran|ifc|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 "emake failed"
       #emake || die "emake failed"
}

src_install() {
       emake  DESTDIR="${D}" install || die "make install failed"
       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 unlimited\n* hard memlock unlimited' > /etc/security/limits.conf"
}





--
Gentoo GNU/Linux 2.6.25

Mail to
     alexxyum@gmail.com
     alexxy@gentoo.ru