Spatial Computing: A Synthesis of Data-Centric Computing and Extreme Hardware Specialization
Post Moore’s Law Computing
TimeWednesday, June 27th2:29pm - 2:51pm
DescriptionThe conventional wisdom of the last two decades is built on the premise that computing is the most expensive component of computing systems. However, we are entering an era where computing is cheap and ubiquitous, and where data movement dominates energy costs and computational performance. These changes overturn fundamental assumptions that underpin current programming systems and portends a move from a computation-centric paradigm to a more data-centric paradigm for expressing computational algorithms.
And yet contemporary programming environments offer few abstractions for managing data locality. Programming models remain steadfastly compute-centric where data must move to where the computation has been placed, as opposed to a data-centric model where compute is executed in-situ to where the data is located (thereby minimizing data movement). Application developers require a set of higher-level programming abstractions to describe data locality on the emerging computing ecosystems. These programming model abstractions can expose crucial information about data locality to the optimizing software stack that would otherwise be destroyed by the process of code compilation. Furthermore, algorithms would need to be reformulated in such a way that spatial information can be exploited implicitly to minimize communication traffic (sometimes at the expense of more computation). Such a spatial and data-centric approach to programming models could minimize the amount of code that must be modified as architectures and program requirements change.