Text this: Programming Heterogeneous Hardware via Managed Runtime Systems