Abstract: Due to new enhancements in the field of computer architecture and the proliferation of heterogeneous computing devices, there is an increasing demand for portable and efficient programming ...