Towards Enhancing Performance, Programmability, and Portability in Heterogeneous Computing. Konstantinos Krommydas. Virginia Tech, May 2017.