Heterogeneous Platforms and Systems are becoming the norm for mobile devices, server systems, and large-scale machines. This project investigates system support to exploit and deal with heterogeneity, at levels of abstraction ranging from middleware, to toolchains, to instrumentation, and operating systems. Concerning individual platforms, our research targets heterogeneous platforms with multicore CPUs and/or integrated and discrete GPUs, and the complex memory systems of future large-memory servers with on-chip fast RAM, die-stacked RAM, NVRAM, and SSD memories. Concerning larger-scale systems, we are considering cloud-hosting datacenters and high end machines like those planned for the exascale era.