diff options
author | jsbronder <jsbronder@32389bae-6d03-0410-99cf-db05cde120eb> | 2008-11-05 02:07:43 +0000 |
---|---|---|
committer | jsbronder <jsbronder@32389bae-6d03-0410-99cf-db05cde120eb> | 2008-11-05 02:07:43 +0000 |
commit | 6e627a2fcd4b94c16df688de42b8363911adb5fa (patch) | |
tree | 78c3ecc38dca38e6ecca4c664f4a73657680e094 | |
parent | Add empi-capable mpich2 (diff) | |
download | sci-6e627a2fcd4b94c16df688de42b8363911adb5fa.tar.gz sci-6e627a2fcd4b94c16df688de42b8363911adb5fa.tar.bz2 sci-6e627a2fcd4b94c16df688de42b8363911adb5fa.zip |
Add empi-capable mpe2, tests pass with mpich2, some issues with openmpi
git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@1332 32389bae-6d03-0410-99cf-db05cde120eb
-rw-r--r-- | sys-cluster/mpe2/Manifest | 2 | ||||
-rw-r--r-- | sys-cluster/mpe2/metadata.xml | 10 | ||||
-rw-r--r-- | sys-cluster/mpe2/mpe2-1.0.6_p1.ebuild | 151 |
3 files changed, 163 insertions, 0 deletions
diff --git a/sys-cluster/mpe2/Manifest b/sys-cluster/mpe2/Manifest new file mode 100644 index 000000000..f55138df4 --- /dev/null +++ b/sys-cluster/mpe2/Manifest @@ -0,0 +1,2 @@ +DIST mpe2-1.0.6p1.tar.gz 9313216 RMD160 1c52f379c3fff4bac5c68505ca657584d8092f7f SHA1 bc810c7a1f3ef5b9cf2563278053afadbc2029f2 SHA256 23cfef2b8a0a27408b5bdadeb216ba3adb3b02bf40d0fa6fc0a110cefd8c5863 +EBUILD mpe2-1.0.6_p1.ebuild 3549 RMD160 cefa6f9b5158bc3066971a88d782aa3aa8c70913 SHA1 8cf1e319fbeba326f0bcaf7a19508b12d294f6de SHA256 8f1c9a813584af23ce957a71a1fbdb76c986af2a1af60d6b803f5769b98f97c5 diff --git a/sys-cluster/mpe2/metadata.xml b/sys-cluster/mpe2/metadata.xml new file mode 100644 index 000000000..a9bd7f630 --- /dev/null +++ b/sys-cluster/mpe2/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>hp-cluster</herd> + <maintainer> + <email>jsbronder@gentoo.org</email> + <name>Justin Bronder</name> + </maintainer> +</pkgmetadata> + diff --git a/sys-cluster/mpe2/mpe2-1.0.6_p1.ebuild b/sys-cluster/mpe2/mpe2-1.0.6_p1.ebuild new file mode 100644 index 000000000..67c113a93 --- /dev/null +++ b/sys-cluster/mpe2/mpe2-1.0.6_p1.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit fortran eutils java-utils-2 mpi + +MY_P=${P/_/} +DESCRIPTION="MPI development tools" +HOMEPAGE="http://www-unix.mcs.anl.gov/perfvis/download/index.htm" +SRC_URI="ftp://ftp.mcs.anl.gov/pub/mpi/${PN%2}/${MY_P}.tar.gz" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~amd64" +IUSE="minimal fortran threads debug" + +MPI_EMPI_COMPAT="openmpi mpich2" + +COMMON_DEPEND="$(mpi_pkg_deplist) + !minimal? ( x11-libs/libXtst + x11-libs/libXi )" + +DEPEND="!minimal? ( >=virtual/jdk-1.4 ) + ${COMMON_DEPEND}" + +RDEPEND="!minimal? ( >=virtual/jre-1.4 ) + ${COMMON_DEPEND}" + +S="${WORKDIR}"/${MY_P} +MPE_IMP="" + + +# README: +# This ebuild is created to handle building with both mpich2 and openmpi. +# However, without empi (in the science overlay), and some further +# conversion to use mpi.eclass, we can only handle one implementation +# at a time. I still believe it's better to have the ebuild setup +# correctly in preperation. + +pkg_setup() { + local i + + mpi_pkg_setup + MPE_IMP=$(mpi_built_with) + + if use fortran ; then + FORTRAN="g77 gfortran ifort ifc" + fortran_pkg_setup + fi + + if use threads; then + if ! built_with_use ${CATEGORY}/${MPE_IMP} threads; then + eerror "Thread logging support in ${P} requires you build" + eerror "${CATEGORY}/${MPE_IMP} with threading support." + die "Fix your USE flags." + fi + fi + + export JFLAGS="${JFLAGS} $(java-pkg_javac-args)" + + if [[ "${MPE_IMP}" == openmpi* ]] && [ -z "${MPE2_FORCE_OPENMPI_TEST}" ]; then + elog "" + elog "Currently src_test fails on collchk with openmpi, hence" + elog "testing is disabled by default. If you would like to" + elog "force testing, please add MPE_FORCE_OPENMPI_TEST=1" + elog "to your environment." + elog "" + fi + + einfo "Building with support for: ${CATEGORY}/${MPE_IMP}" +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # Don't assume path contains ./ + sed -i 's,\($MPERUN\) $pgm,\1 ./$pgm,' sbin/mpetestexeclog.in +} + +src_compile() { + local c="--with-mpicc=$(get_eselect_var MPI_CC)" + local d=$(get_mpi_dir) + + if [ -n "${FORTRANC}" ]; then + c="${c} --with-mpif77=$(get_eselect_var MPI_F77)" + export F77=${FORTRANC} + else + c="${c} --disable-f77" + fi + + if use minimal; then + c="${c} --enable-slog2=no --disable-rlog --disable-sample" + else + c="${c} --with-java2=$(java-config --jdk-home) --enable-slog2=build" + fi + + if [[ "${MPE_IMP}" == openmpi* ]]; then + c="${c} --disable-rlog --disable-sample" + fi + + mpi_conf_args="${c} + --sysconfdir=/etc/${PN} + --with-htmldir=${d}/usr/share/${PN} + --with-docdir=${d}/usr/share/${PN} + --enable-collchk + --enable-wrappers + $(use_enable !minimal graphics) + $(use_enable threads threadlogging ) + $(use_enable debug g)" + mpi_src_compile + +#--with-mpicc=/usr/bin/mpicc \ +#--with-mpif77=/usr/bin/mpif77 \ +} + +src_test() { + local rc + local d=$(get_mpi_dir) + + cd "${S}" + + if [[ "${MPE_IMP}" == mpich2* ]]; then + "${ROOT}"${d}/usr/bin/mpd -d --pidfile="${T}"/mpd.pid + elif [[ "${MPE_IMP}" == openmpi* ]] && [ -z "${MPE2_FORCE_OPENMPI_TEST}" ]; then + elog + elog "Skipping tests for openmpi" + elog + return 0 + fi + + emake \ + CC="${S}"/bin/mpecc \ + FC="${S}"/bin/mpefc \ + MPERUN="${ROOT}${d}/usr/bin/mpiexec -n 4" \ + CLOG2TOSLOG2="${S}/src/slog2sdk/bin/clog2TOslog2" \ + check; + rc=${?} + if [[ "${MPE_IMP}" == mpich2* ]]; then + "${ROOT}"${d}/usr/bin/mpdallexit || kill $(<"${T}"/mpd.pid) + fi + + return ${rc} +} + +src_install() { + local d=$(get_mpi_dir) + cd "${S}" + emake DESTDIR="${D}" install || die + rm -f "${D}"/${d}/usr/sbin/mpeuninstall +} |