Sistema de trabajos (job system)
Un planificador del motor que descompone un fotograma en pequeños trabajos ejecutados sobre un grupo de hilos con dependencias, de modo que cada núcleo de la CPU se mantenga ocupado sin hilos gestionados a mano.
En vez de lanzar un hilo por sistema, planifica tareas cortas —«actualiza estas 500 partículas», «culling de este nodo»— en un grupo con un trabajador por núcleo. Un trabajo puede declarar que depende de otro, así que el planificador construye un grafo de dependencias y ejecuta en paralelo todo lo independiente. Los trabajadores ociosos roban trabajos de las colas ocupadas (robo de trabajo).
El sistema basado en fibras de Naughty Dog (GDC 2015) permitió que un trabajo se pausara y reanudara de forma barata; el C# Job System de Unity llevó el patrón a un público más amplio. La ganancia supone que los datos estén dispuestos en arreglos y orientados a datos; de lo contrario los trabajos se pelean por las mismas líneas de caché.