Heterogeneous Computing: Hardware and Software Perspectives - Mohamed Zahran (2019)