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

2009/1/30 Janusz Mordarski <[email protected]>

> 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
     [email protected]
     [email protected]

Reply via email to