Balance Principles for Algorithm-Architecture Co-Design
The authors consider the problem of "Co-design," by which they mean the problem of how to design computational algorithms for particular hardware architectures and vice-versa. Their position is that balance principles should drive the co-design process. A balance principle is a theoretical constraint equation that explicitly relates algorithm parameters to hardware parameters according to some figure of merit, such as speed, power, or cost. This notion originates in the work of Kung (1986); Callahan, Cocke, and Kennedy (1988); and McCalpin (1995); however, they reinterpret these classical notions of balance in a modern context of parallel and I/O-efficient algorithm design as well as trends in emerging architectures.