Automatic Empirical Techniques For Developing Efficient Mpi Collective Communication Routines