Zaslat SMS: Static and Dynamic Approaches to Data Mapping Optimization in Heterogeneous Programs