High-level programming for heterogeneous and hierarchical parallel systems. (November 2018)