On the Three P's of Parallel Programming for Heterogeneous Computing: Performance, Productivity, and Portability | IEEE Conference Publication | IEEE Xplore