  The performance of collective operations has been a critical issue since the
advent of MPI. Many algorithms have been proposed for each MPI collective
operation but none of them proved optimal in all situations. Different
algorithms demonstrate superior performance depending on the platform, the
message size, the number of processes, etc. MPI implementations perform the
selection of the collective algorithm empirically, executing a simple runtime
decision function. While efficient, this approach does not guarantee the
optimal selection. As a more accurate but equally efficient alternative, the
use of analytical performance models of collective algorithms for the selection
process was proposed and studied. Unfortunately, the previous attempts in this
direction have not been successful. We revisit the analytical model-based
approach and propose two innovations that significantly improve the selective
accuracy of analytical models: (1) We derive analytical models from the code
implementing the algorithms rather than from their high-level mathematical
definitions. This results in more detailed models. (2) We estimate model
parameters separately for each collective algorithm and include the execution
of this algorithm in the corresponding communication experiment. We
experimentally demonstrate the accuracy and efficiency of our approach using
Open MPI broadcast and gather algorithms and a Grid5000 cluster.
