Programming Models' Support For Heterogeneous Architecture