Heterogeneous-computing Interface for Portability