Encapsulate multi-process communication (part 2)
Created by: bradking
Continue work started in #1691 to encapsulate multi-process communication behind a helper::Comm
API:
- Encapsulate remaining MPI types and constants inside
helper::Comm
and offer equivalents publicly. - Convert more code from direct MPI use over to
helper::Comm
. Add APIs to the latter as needed. * Abstract thehelper::Comm
implementation internally to work with either MPI or a dummy backend. - Replace MPI with
helper::Comm
in coreADIOS
,IO
, andStream
interfaces. - Minimize direct inclusion of
ADIOSMPI.h
to only places that still use MPI directly.