MPI and OpenSHMEM abstraction layer