A framework for writing programs that execute across heterogeneous platforms composed of CPUs, GPUs, and other processors.