MPI abstraction.
Merge branch 'mpi-abstraction'