Mechanizing the Expert Dense Linear Algebra Developer
Sustained high performance on the fastest computers in the world has traditionally been accomplished by experts who carefully hand-code key routines. This quickly becomes unmanageable for large bodies of software and/or as architectures change enough that entire libraries need to be rewritten. The authors believe the problem is that a typical library for scientific computing exists as a set of routines that are manually instantiated in a specific programming language. They advocate developing libraries of the future as algorithms and fundamental kernels that encode computation and data movement, together with expert knowledge. From this a tool will synthesize efficient, platform-specific implementations by composing, transforming, and optimizing library algorithms, accomplishing automatically what today's experts do manually.