Heterogeneous Earlyest Finish Time (o HEFT) es una heurística para programar un conjunto de tareas dependientes en una red de trabajadores heterogéneos teniendo en cuenta el tiempo de comunicación. [1] Como entradas, HEFT toma un conjunto de tareas, representadas como un gráfico acíclico dirigido , un conjunto de trabajadores, los tiempos para ejecutar cada tarea en cada trabajador y los tiempos para comunicar los resultados de cada trabajo a cada uno de sus hijos entre cada pareja de trabajadores. Desciende de los algoritmos de programación de listas .
En la primera fase se da prioridad a cada tarea. La prioridad de cada tarea generalmente se designa como su "rango ascendente", que se define recursivamente de la siguiente manera