Describir: High performance heterogeneous computing