possibly finished mpi_solver.c