Since 2006, we have been experiencing two very important developments in computing. One is that tremendous amounts of resources have been invested into innovative applications such as first-principle based models, deep learning and cognitive computing. Many application domains are defying the conventional “it is too expensive” thinking that led to inaccuracies and missed opportunities. The other part is that the industry has been taking a technological path where application performance and power efficiency vary by more than two orders of magnitude depending on their parallelism, heterogeneity, and locality. Today, most of the top supercomputers in the world are heterogeneous parallel computing systems. New standards such as the Heterogeneo...