Mesos MPICH2 framework readme
--------------------------------------------

Table of Contents:
1) Installing MPICH2
2) Running the Mesos MPICH2 framework

=====================
1) INSTALLING MPICH2:
=====================
- 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://www.mcs.anl.gov/research/projects/mpich2/. This tutorial
  follows the latter. Unpack the tar.gz and...

- To use MPI with Mesos, make sure to have MPICH2 installed on every
  machine in your cluster.

Setting up:
-> Install and configure:
mac    :  ./configure --prefix=/Users/_your_username_/mpich2-install
ubuntu :  ./configure --prefix=/home/_your_username_/mpich2-install
	  Then...
	  sudo make
	  sudo make install


-> Optional: add mpich binaries to PATH. You can specify the path to
   installed MPICH2 binaries using mpiexec-meso's '--path' option
mac    :  sudo vim ~/.bash_profile
          export PATH=/Users/_your_username_/mpich2-install/bin:$PATH
ubuntu :  sudo vim ~/.bashrc
          export PATH=/home/_your_username_/mpich2-install/bin:$PATH

-> Create .mpd conf file in home directory:
          echo "secretword=nil" > ~/.mpd.conf
	  chmod 600 .mpd.conf

-> Check installation - these should all return the PATH's set above
          which mpd
          which mpiexec
          which mpirun


=====================================
2) RUNNING THE MESOS MPICH2 FRAMEWORK
=====================================

Using/testing mpiexec-mesos:
-> Start a Mesos master and slaves

-> How to run a Hello, World! program (pass the -h flag to see help options):
       mpicc helloworld.c -helloworld
      ./mpiexec-mesos 127.0.0.1:5050 ./helloworld
   Paths to mesos, protobuf, and distribute eggs can be specified by setting
   respective environment variables in mpiexec-mesos.
