Prof. Nakano(ism Japan) and I wrestled in Rmpi on HP-MPI. Do not know a method to distinguish MPI well? It is an ad-hoc patch at that time as follows.
diff -ruN Rmpi.orig/configure Rmpi/configure --- Rmpi.orig/configure 2006-10-12 23:47:03.000000000 +0900 +++ Rmpi/configure 2007-01-10 21:24:55.000000000 +0900 @@ -1268,7 +1268,7 @@ fi; if test -z "$MPI_ROOT"; then - for d in /opt/lib /usr/local/lib /usr/lib; do + for d in /opt /opt/lib /usr/local/lib /usr/lib; do if test -f $d/lam/include/mpi.h && test -f $d/lam/lib/libmpi.a; then echo "I am here $d/lam" MPI_ROOT=$d/lam @@ -1281,6 +1281,10 @@ echo "I am here $d/mpich" MPI_ROOT=$d/mpich break + elif test -f $d/hpmpi/include/mpi.h; then + echo "I am here $d/hpmpi" + MPI_ROOT=$d/hpmpi + break fi done fi @@ -2781,6 +2785,9 @@ if test -f ${MPI_ROOT}/lib/libmpi.a; then echo "Found libmpi in ${MPI_ROOT}/lib" MPI_LIBS="-L${MPI_ROOT}/lib -lmpi" +elif test -f ${MPI_ROOT}/lib/linux_amd64/libmpi.a; then + echo "Found in ${MPI_ROOT}/lib/linux_amd64" + MPI_LIBS="-L${MPI_ROOT}/lib/linux_amd64 -lmpi -lmpio -Wl,-rpath=${MPI_ROOT}/lib/linux_amd64" elif test -f ${MPI_ROOT}/lib/libmpich.a; then echo "Found libmpich in ${MPI_ROOT}/lib" MPI_LIBS="-L${MPI_ROOT}/lib -lmpich" @@ -2835,7 +2842,7 @@ echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_main" >&5 echo "${ECHO_T}$ac_cv_lib_mpi_main" >&6 if test $ac_cv_lib_mpi_main = yes; then - MPI_LIBS="-lmpi" + MPI_LIBS="-lmpi -lmpio" else echo "libmpi not found. exiting..." exit 1 diff -ruN Rmpi.orig/R/Rcomm.R Rmpi/R/Rcomm.R --- Rmpi.orig/R/Rcomm.R 2006-02-08 07:11:25.000000000 +0900 +++ Rmpi/R/Rcomm.R 2007-01-10 21:26:42.000000000 +0900 @@ -72,11 +72,11 @@ if (!is.character(slave)) stop("character argument (slave) expected") - #if (nslaves > mpi.universe.size()){ - # tmp <- paste("Number of R slaves is over", - # mpi.universe.size(),": maximum CPUs.") - # warning(tmp) - # } + if (nslaves > mpi.universe.size()){ + tmp <- paste("Number of R slaves is over", + mpi.universe.size(),": maximum CPUs.") + warning(tmp) + } else if (nslaves <= 0) stop("Choose a positive number of slaves.") .Call("mpi_comm_spawn", diff -ruN Rmpi.orig/R/zzz.R Rmpi/R/zzz.R --- Rmpi.orig/R/zzz.R 2005-11-24 04:19:26.000000000 +0900 +++ Rmpi/R/zzz.R 2007-01-10 21:18:49.000000000 +0900 @@ -7,13 +7,13 @@ # cat(vertxt) # Check if lam-mpi is running - if (.Platform$OS=="unix"){ - if (length(system("lamnodes",TRUE,ignore.stderr = TRUE)) == 0){ - cat("\n\tLAM/MPI runtime environment is not operating.\n") - cat("\tStarting LAM/MPI runtime environment.\n") - system("lamboot -H",ignore.stderr = TRUE) - } - } + #if (.Platform$OS=="unix"){ + # if (length(system("lamnodes",TRUE,ignore.stderr = TRUE)) == 0){ + # cat("\n\tLAM/MPI runtime environment is not operating.\n") + # cat("\tStarting LAM/MPI runtime environment.\n") + # system("lamboot -H",ignore.stderr = TRUE) + # } + #} library.dynam("Rmpi", pkg, lib) if (!TRUE) diff -ruN Rmpi.orig/src/Rmpi.c Rmpi/src/Rmpi.c --- Rmpi.orig/src/Rmpi.c 2006-09-05 23:10:59.000000000 +0900 +++ Rmpi/src/Rmpi.c 2007-01-10 21:18:49.000000000 +0900 @@ -77,7 +77,7 @@ return AsInt(LENGTH(STRING_ELT(sexp_data,0))); } -#ifdef MPI2 +#if defined(MPI2) || (defined(HP_MPI) && HP_MPI > 200) SEXP mpi_universe_size(){ int *MPI_Universe_Size; int univ_flag; @@ -857,7 +857,7 @@ return AsInt(flag); } -#ifdef MPI2 +#if defined(MPI2) || (defined(HP_MPI) && HP_MPI > 200) SEXP mpi_comm_spawn (SEXP sexp_slave, SEXP sexp_argv, SEXP sexp_nslave, 2007/3/28, Dirk Eddelbuettel <[EMAIL PROTECTED]>: > > Has anybody tried to use Rmpi with the OpenMPI library instead of LAM/MPI? > > LAM appears to be somewhat hardcoded in the Rmpi setup. Before I start to > experiment with changing this, has anybody else tried Rmpi with non-LAM MPI > implementations? > > Dirk > > -- > Hell, there are no rules here - we're trying to accomplish something. > -- Thomas A. Edison > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > > -- EI-JI Nakama <[EMAIL PROTECTED]> "\u4e2d\u9593\u6804\u6cbb" <[EMAIL PROTECTED]> ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel