Programación de tareas en paralelo


La programación de tareas en paralelo (también llamada programación de trabajos en paralelo [1] [2] o programación de procesamiento en paralelo [3] ) es un problema de optimización en informática e investigación de operaciones . Es una variante de la programación óptima de trabajos . En un problema general de programación de trabajos, tenemos n trabajos J 1J 2 , ...,  J n de tiempos de procesamiento variables, que deben programarse en m máquinas mientras se intenta minimizar el rendimiento- la duración total de la programación (es decir, cuando todos los trabajos han terminado de procesarse). En la variante específica conocida como programación de tareas paralelas , todas las máquinas son idénticas. Cada trabajo j tiene un parámetro de longitud p j y un parámetro de tamaño q j , y debe ejecutarse exactamente p j pasos de tiempo en exactamente q j máquinas en paralelo .

Veltman et al. [4] y Drozdowski [3] denotan este problema en la notación de tres campos introducida por Graham et al. [5] P significa que hay varias máquinas idénticas funcionando en paralelo; tamaño j significa que cada trabajo tiene un parámetro de tamaño; C max significa que el objetivo es minimizar el tiempo máximo de finalización. Algunos autores utilizan en su lugar. [1]

Los orígenes de la formulación de este problema se remontan a 1960. [6] Para este problema, no existe un algoritmo de aproximación de tiempo polinomial con una relación menor que menos que . [ cita requerida ]

Hay un conjunto de trabajos y máquinas idénticas. Cada trabajo tiene un tiempo de procesamiento (también llamado longitud de j ), y requiere el uso simultáneo de máquinas durante su ejecución (también llamado tamaño o ancho de j).