Which of the following statements is true?
• Users want “black box” software that they can use with complete confidence for general problem classes without having to understand the fine algorithmic details.
• Users want to be able to tune data structures for a particular application, even if the software is not as reliable as that provided for general methods.
It turns out both are true, for different groups of users.
Traditionally, users have asked for and been provided with black box software in the form of mathematical libraries such as LAPACK, LINPACK, NAG, and IMSL. More recently, the high-performance community has discovered that they must write custom software for their problem. Their reasons include inadequate functionality of existing software libraries, data structures that are not natural or convenient for a particular problem, and overly general software that sacrifices too much performance when applied to a special case of interest.