Refactor mpi test

This refactoring pulls apart the communicator so it can be reused for
multiple tests. I also added a new throughput test