implemente the MPI