You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by nn...@apache.org on 2014/02/03 18:39:17 UTC

git commit: Fixed MPI framework.

Updated Branches:
  refs/heads/master 5fb9f3717 -> 639d84379


Fixed MPI framework.

MPI did not run on Mesos due to broken version-dependent paths and
broken reg exp in python scheduler script that failed to extract
ip and port of mpd processes. Corrected the above.

(An effort is underway to support the hydra process management
 facility in lieu of the deprecated mpd...)

From: Bernd Mathiske <be...@mesosphere.io>
Review: https://reviews.apache.org/r/17635


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/639d8437
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/639d8437
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/639d8437

Branch: refs/heads/master
Commit: 639d84379bcfabf77c4f2516f25eb23e20645d19
Parents: 5fb9f37
Author: Niklas Q. Nielsen <ni...@mesosphere.io>
Authored: Sun Feb 2 20:17:13 2014 +0000
Committer: Niklas Q. Nielsen <ni...@mesosphere.io>
Committed: Sun Feb 2 20:17:13 2014 +0000

----------------------------------------------------------------------
 mpi/README           |  6 +++++-
 mpi/mpiexec-mesos.in | 10 ++++++----
 mpi/mpiexec-mesos.py |  6 +++---
 3 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/639d8437/mpi/README
----------------------------------------------------------------------
diff --git a/mpi/README b/mpi/README
index d3141f9..691ae78 100644
--- a/mpi/README
+++ b/mpi/README
@@ -8,8 +8,12 @@ Table of Contents:
 =====================
 1) INSTALLING MPICH2:
 =====================
-- This framework was developed for MPICH2 1.2(mpd was deprecated
+- This framework was developed for MPICH2 1.2 (mpd was deprecated
   starting 1.3) on Linux(Ubuntu 11.10) and OS X Lion.
+  WARNING: MPICH2 later than 1.2 may not run on Mesos.
+  (You can configure newer version to include mpd,
+   but then mpdtrace may still be missing and
+   the executor script used for Mesos relies on it.)
 
 - You can install MPICH2 from scratch. You can get MPICH2 as well as
   installation directions here:

http://git-wip-us.apache.org/repos/asf/mesos/blob/639d8437/mpi/mpiexec-mesos.in
----------------------------------------------------------------------
diff --git a/mpi/mpiexec-mesos.in b/mpi/mpiexec-mesos.in
index 05f955d..da0733f 100644
--- a/mpi/mpiexec-mesos.in
+++ b/mpi/mpiexec-mesos.in
@@ -1,5 +1,7 @@
 #!/bin/sh
-
+#
+# This is a wrapper script for the MPI launcher framework.
+#
 # This script uses MESOS_SOURCE_DIR and MESOS_BUILD_DIR which come
 # from configuration substitutions.
 MESOS_SOURCE_DIR=@abs_top_srcdir@
@@ -14,13 +16,13 @@ test ! -z "${PYTHON}" && \
 
 PYTHON=@PYTHON@
 
-DISTRIBUTE_EGG=`echo ${MESOS_BUILD_DIR}/third_party/distribute-*/dist/*.egg`
+DISTRIBUTE_EGG=`echo ${MESOS_BUILD_DIR}/3rdparty/distribute-*/dist/*.egg`
 
 test ! -e ${DISTRIBUTE_EGG} && \
   echo "${RED}Failed to find ${DISTRIBUTE_EGG}${NORMAL}" && \
   exit 1
 
-PROTOBUF=${MESOS_BUILD_DIR}/third_party/protobuf-2.4.1
+PROTOBUF=${MESOS_BUILD_DIR}/3rdparty/libprocess/3rdparty/protobuf-*
 PROTOBUF_EGG=`echo ${PROTOBUF}/python/dist/protobuf*.egg`
 
 test ! -e ${PROTOBUF_EGG} && \
@@ -33,7 +35,7 @@ test ! -e ${MESOS_EGG} && \
   echo "${RED}Failed to find ${MESOS_EGG}${NORMAL}" && \
   exit 1
 
-SCRIPT=`dirname ${0}`/mpiexec-mesos.py
+SCRIPT=${MESOS_SOURCE_DIR}/mpi/mpiexec-mesos.py
 
 test ! -e ${SCRIPT} && \
   echo "${RED}Failed to find ${SCRIPT}${NORMAL}" && \

http://git-wip-us.apache.org/repos/asf/mesos/blob/639d8437/mpi/mpiexec-mesos.py
----------------------------------------------------------------------
diff --git a/mpi/mpiexec-mesos.py b/mpi/mpiexec-mesos.py
index 430a366..0ab5016 100755
--- a/mpi/mpiexec-mesos.py
+++ b/mpi/mpiexec-mesos.py
@@ -133,9 +133,9 @@ def countMPDs():
 
 
 def parseIpPort(s):
-  ba = re.search("_([^ ]*) \(([^)]*)\)", s)
-  ip = ba.group(2)
-  port = ba.group(1)
+  ba = re.search("([^_]*)_([0-9]*)", s)
+  ip = ba.group(1)
+  port = ba.group(2)
   return (ip, port)