Describir: Dynamic System Reconfiguration in Heterogeneous Platforms