Las arquitecturas de computación de alto rendimiento (HPC) se han convertido en una herramienta clave para la investigación y desarrollo de aplicaciones en diversos campos científicos y técnicos. La incorporación de unidades de procesamiento especializadas, también llamadas aceleradores, conectadas mediante buses, como el bus PCIe, han incrementado el rendimiento conseguido por este tipo de arquitecturas. Las plataformas constituidas mediante la combinación de CPUs y aceleradores se denominan heterogéneas ya que incluyen arquitecturas con distintos conjuntos de instrucciones.
En la actualidad son cada vez más habituales los sistemas de computación que usan diferentes clases de procesadores (normalmente CPUs y GPUs). Esta incorporación de distintos procesadores permite mejorar la flexibilidad y eficiencia del sistema para la computación de tareas particulares. Aunque la capacidad de procesamiento de propósito general de las GPUs permite realizar de forma eficiente cálculos matemáticos, las CPUs modernas son también capaces de alcanzar un rendimiento computacional similar aprovechando sus capacidades de paralelismo a nivel de instrucción y baja latencia. Es por ello que la gestión de estas plataformas heterogéneas requiere de sistemas de planificación que identifiquen cuáles tareas son más adecuadas para cada procesador.
La ejecución concurrente de varias aplicaciones puede dar lugar al envío de varios kernels al acelerador. El soporte hardware para la ejecución concurrente de kernels varía de un acelerador a otro. Por ejemplo, en el caso de NVIDIA se denomina Hyper-Q a un conjunto de hasta 32 conexiones simultáneas, gestionadas por hardware, que permiten lanzar tareas independientes, mientras que en el caso de AMD se usan hasta 8 Asynchronous Compute Engines (ACEs) que pueden gestionar hasta 8 colas hardware cada uno de ellos.