Describir: Heterogeneous Computing with OpenCL