  A large class of dense linear algebra operations, such as LU decomposition or
inversion of a triangular matrix, are usually performed by blocked algorithms.
For one such operation, typically, not only one but many algorithmic variants
exist; depending on computing architecture, libraries and problem size, each
variant attains a different performances. We propose methods and tools to rank
the algorithmic variants according to their performance for a given scenario
without executing them.
  For this purpose, we identify the routines upon which the algorithms are
built. A first tool - the Sampler - measures the performance of these routines.
Using the Sampler, a second tool models their performance. The generated models
are then used to predict the performance of the considered algorithms. For a
given scenario, these predictions allow us to correctly rank the algorithms
according to their performance without executing them. With the help of the
same tools, algorithmic parameters such as block-size can be optimally tuned.
