Yes its possible. I add this ebuild after i test it also i add infiniband support for openmpi 2009/1/30 Janusz Mordarski > 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