Parallel Scientific Computing in C++ and MPI