Performance Modeling for Self Adapting Collective Communications for MPI