Articulo de referencia

Planificación de tareas en paralelo

La planificación de tareas paralelas (también llamada planificación de trabajos paralelos [ 1 ] [ 2 ] o planificación de procesamiento paralelo [ 3 ] ) es un problema de optimiz...

La planificación de tareas paralelas (también llamada planificación de trabajos paralelos [ 1 ] [ 2 ] o planificación de procesamiento paralelo [ 3 ] ) es un problema de optimización en ciencias de la computación e investigación de operaciones . Es una variante de la planificación óptima de trabajos . En un problema general de planificación de trabajos, se nos dan n trabajos J1 , J2 , ... , Jn de tiempos de procesamiento variables, que deben planificarse en m máquinas mientras se intenta minimizar el makespan - la duración total de la planificación (es decir, cuando todos los trabajos han terminado de procesarse). En la variante específica conocida como planificación de tareas paralelas , todas las máquinas son idénticas. Cada trabajo j tiene un parámetro de duración pj y un parámetro de tamaño qj , y debe ejecutarse durante exactamente pj pasos de tiempo en exactamente qj máquinas en paralelo .   

Veltman et al. [ 4 ] y Drozdowski [ 3 ] denotan este problema porPAG|sizmij|domáximo{\displaystyle P|size_{j}|C_{\max }}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 PAG|metroj|domáximo{\displaystyle P|m_{j}|C_{\max }}en cambio. [ 1 ] Nótese que el problema de la planificación de máquinas paralelas es un caso especial de planificación de tareas paralelas dondesizmij=1{\displaystyle size_{j}=1}para todos los j , es decir, cada trabajo debe ejecutarse en una sola máquina.

Los orígenes de esta formulación del problema se remontan a 1960. [ 6 ] Para este problema, no existe ningún algoritmo de aproximación de tiempo polinomial con una razón menor que3/2{\displaystyle 3/2}a menos quePAG=nortePAG{\displaystyle P=NP}. [ 7 ]

Definición

Hay un conjuntoJ{\displaystyle {\mathcal {J}}}denorte{\displaystyle n}empleos ymetro{\displaystyle m}máquinas idénticas. Cada trabajojJ{\displaystyle j\in {\mathcal {J}}}tiene un tiempo de procesamientopagjnorte{\displaystyle p_{j}\in \mathbb {N} }(también llamada la longitud de j ), y requiere el uso simultáneo deqjnorte{\displaystyle q_{j}\in \mathbb {N} }máquinas durante su ejecución (también llamado tamaño o ancho de j).

Un cronograma asigna cada trabajojJ{\displaystyle j\in {\mathcal {J}}}a una hora de iniciosjnorte0{\displaystyle s_{j}\in \mathbb {N} _{0}}y un conjuntometroj{1,,metro}{\displaystyle m_{j}\subseteq \{1,\dots ,m\}}de|metroj|=qj{\displaystyle |m_{j}|=q_{j}}máquinas en las que se procesará. Un cronograma es factible si cada procesador ejecuta como máximo un trabajo en un momento dado. El objetivo del problema denotado porPAG|sizmij|domáximo{\displaystyle P|size_{j}|C_{\max }}es encontrar un horario con duración mínimadomáximo=máximojJ(sj+pagj){\displaystyle C_{\max }=\max _{j\in {\mathcal {J}}}(s_{j}+p_{j})}, también llamado tiempo de finalización del cronograma. Una condición suficiente para la viabilidad de un cronograma es la siguiente:

jJ,sjt<sj+pagjqjmetrot{s1,,snorte}{\displaystyle \sum _{j\in {\mathcal {J}},s_{j}\leq t<s_{j}+p_{j}}q_{j}\leq m\,\forall t\in \{s_{1},\dots ,s_{n}\}}.

Si esta propiedad se cumple para todos los tiempos de inicio, se puede generar un cronograma factible asignando máquinas libres a los trabajos en cada momento a partir del tiempot=0{\displaystyle t=0}. [ 1 ] [ 2 ] Además, el número de intervalos de máquina utilizados por los trabajos y los intervalos de inactividad en cada paso de tiempo se puede limitar por|J|+1{\displaystyle |{\mathcal {J}}|+1}[ 1 ] Aquí , un intervalo de máquina es un conjunto de máquinas consecutivas de cardinalidad máxima, de modo que todas las máquinas de este conjunto procesan el mismo trabajo. Un intervalo de máquina se especifica completamente mediante el índice de su primera y última máquina. Por lo tanto, es posible obtener una forma compacta de codificar la salida con tamaño polinomial.

Dificultad computacional

Este problema es NP-difícil incluso cuando solo hay dos máquinas y los tamaños de todos los trabajos sonqj=1{\displaystyle q_{j}=1}(es decir, cada trabajo necesita ejecutarse solo en una sola máquina). Este caso especial, denotado porPAG2||domáximo{\displaystyle P2||C_{\max }}, es una variante del problema de partición , que se sabe que es NP-difícil.

Cuando el número de máquinas m es como máximo 3, es decir: para las variantesPAG2|sizmij|domáximo{\displaystyle P2|size_{j}|C_{\max }}yPAG3|sizmij|domáximo{\displaystyle P3|size_{j}|C_{\max }}Existe un algoritmo de tiempo pseudopolinomial que resuelve el problema exactamente. [ 8 ]

Por el contrario, cuando el número de máquinas es al menos 4, es decir: para las variantesPAGmetro|sizmij|domáximo{\displaystyle Pm|size_{j}|C_{\max }}para cualquiermetro4{\displaystyle m\geq 4}, el problema también es fuertemente NP-difícil [ 9 ] (este resultado mejoró un resultado anterior [ 8 ] que mostraba una fuerte NP-dificultad parametro5{\displaystyle m\geq 5}).

Si el número de máquinas no está limitado por una constante, entonces no puede haber ningún algoritmo de aproximación con una razón de aproximación menor que3/2{\displaystyle 3/2}a menos quePAG=nortePAG{\displaystyle P=NP}Esto se cumple incluso para el caso especial en el que el tiempo de procesamiento de todos los trabajos espagj=1{\displaystyle p_{j}=1}, puesto que este caso especial es equivalente al problema de empaquetamiento de contenedores : cada paso de tiempo corresponde a un contenedor, m es el tamaño del contenedor, cada trabajo corresponde a un elemento de tamaño q j , y minimizar el tiempo de finalización corresponde a minimizar el número de contenedores.

Variantes

Se han estudiado varias variantes de este problema. [ 3 ] También se han considerado las siguientes variantes en combinación entre sí.

Restricciones de precedencia : En esta variante, existen relaciones de precedencia entre los trabajos, por ejemplo, si dos trabajos i y j tienen una relación de precedencia que establece que i debe preceder a j , es decir,ij{\displaystyle i\prec j}, entonces i debe preceder a j en cualquier solución factible. Este problema es NP-difícil (reducción por clique ) incluso si todos los tiempos de procesamientopagj{\displaystyle p_{j}}son iguales para m máquinas. Sin embargo, se podría resolver la variante de 2 máquinas en tiempo polinomial, ya que el problema se reduce efectivamente a encontrar un emparejamiento perfecto de cierta longitud. En caso de que no exista un emparejamiento perfecto para dos trabajos en algún instante de tiempo (lo que puede deberse a que no hay ningún trabajo disponible en ese instante), podemos agregar un trabajo ficticio para verificar la corrección. Encontrar la complejidad computacional paraPAG3|{\displaystyle P3|}prec|dometroaincógnita{\displaystyle |C_{max}}Sin embargo, se desconoce. [ 10 ]

Trabajos contiguos : En esta variante, las máquinas tienen un orden fijo.(METRO1,,METROmetro){\displaystyle (M_{1},\dots ,M_{m})}En lugar de asignar los trabajos a cualquier subconjuntometroj{METRO1,,METROmetro}{\displaystyle m_{j}\subseteq \{M_{1},\dots ,M_{m}\}}Los trabajos deben asignarse a un intervalo contiguo de máquinas. Este problema corresponde a la formulación del problema de empaquetamiento en tiras .

Plataformas múltiples: En esta variante, el conjunto de máquinas se divide en plataformas independientes. Un trabajo programado solo puede usar las máquinas de una plataforma y no se le permite abarcar varias plataformas durante su procesamiento.

Trabajos moldeables : En esta variante cada trabajojJ{\displaystyle j\in {\mathcal {J}}}tiene un conjunto de recuentos de máquinas factiblesDj{1,metro}{\displaystyle D_{j}\subseteq \{1,\dots m\}}. Por cada recuentodDj{\displaystyle d\in D_{j}}, el trabajo se puede procesar en d máquinas en paralelo, y en este caso, su tiempo de procesamiento serápagj,d{\displaystyle p_{j,d}}Para programar un trabajojJ{\displaystyle j\in {\mathcal {J}}}, un algoritmo tiene que elegir un número de máquinasdDj{\displaystyle d\in D_{j}}y asignar j a un tiempo de iniciosj{\displaystyle s_{j}}y ad{\displaystyle d}máquinas durante el intervalo de tiempo[sj,sj+pagj,d).{\displaystyle [s_{j},s_{j}+p_{j,d}).} Una suposición habitual para este tipo de problema es que la carga de trabajo total de un trabajo, que se define comodpagj,d{\displaystyle d\cdot p_{j,d}}, no es creciente para un número creciente de máquinas.

Fechas de lanzamiento : En esta variante, denotada porPAG|sizmij,rj|domáximo{\displaystyle P|size_{j},r_{j}|C_{\max }}No todos los trabajos están disponibles en el tiempo 0; cada trabajo j estará disponible en un tiempo fijo y conocido r j . Debe programarse después de ese tiempo.

Preemption : En esta variante, denotada porPAG|sizmij,rj,pago|domáximo{\displaystyle P|size_{j},r_{j},{\text{pmtn}}|C_{\max }}Es posible interrumpir trabajos que ya estén en ejecución y programar otros trabajos que estén disponibles en ese momento.

Algoritmos

El algoritmo de planificación de listas de Garey y Graham [ 11 ] tiene una relación absoluta2{\displaystyle 2}, como señalan Turek et al. [ 12 ] y Ludwig y Tiwari. [ 13 ] Feldmann, Sgall y Teng [ 14 ] observaron que la longitud de una planificación no preemptiva producida por el algoritmo de planificación de listas es en realidad como máximo(21/metro){\displaystyle (2-1/m)}veces el tiempo de finalización preventivo óptimo. Un esquema de aproximación de tiempo polinomial (PTAS) para el caso en que el númerometro{\displaystyle m}de procesadores es constante, denotado porPAGmetro|sizmij|domáximo{\displaystyle Pm|size_{j}|C_{\max }}, fue presentado por Amoura et al. [ 15 ] y Jansen et al. [ 16 ] Posteriormente, Jansen y Thöle [ 2 ] encontraron un PTAS para el caso en que el número de procesadores está acotado polinomialmente en el número de trabajos. En este algoritmo, el número de máquinas aparece polinomialmente en la complejidad temporal del algoritmo. Dado que, en general, el número de máquinas aparece solo logarítmicamente en el tamaño de la instancia, este algoritmo es también un esquema de aproximación de tiempo pseudopolinomial.(3/2+ε){\displaystyle (3/2+\varepsilon )}La aproximación fue dada por Jansen, [ 17 ] que cierra la brecha al límite inferior de3/2{\displaystyle 3/2}excepto por una cantidad arbitrariamente pequeñaε{\displaystyle \varepsilon }.

Diferencias entre trabajos contiguos y no contiguos

Dado un ejemplo del problema de programación de tareas paralelas, el tiempo de finalización óptimo puede variar dependiendo de la restricción a la contigüidad de las máquinas. Si los trabajos se pueden programar en máquinas no contiguas, el tiempo de finalización óptimo puede ser menor que en el caso de que deban programarse en máquinas contiguas. La diferencia entre programaciones contiguas y no contiguas se demostró por primera vez en 1992 [ 18 ] en un ejemplo connorte=8{\displaystyle n=8} tareas,metro=23{\displaystyle m=23}procesadores,domáximonortedo=17{\displaystyle C_{\max }^{nc}=17}, ydomáximodo=18{\displaystyle C_{\max }^{c}=18}. Błądek et al. [ 19 ] estudiaron estas llamadas diferencias c/nc y demostraron los siguientes puntos:

  • Para que surja la diferencia ac/nc, debe haber al menos tres tareas conqj>1.{\displaystyle q_{j}>1.}
  • Para que surja la diferencia ac/nc, debe haber al menos tres tareas con pagj>1.{\displaystyle p_{j}>1.}
  • Para que surja la diferencia ac/nc, al menosmetro=4{\displaystyle m=4}Se requieren procesadores (y existe una instancia con ac/nc-difference conmetro=4{\displaystyle m=4}).
  • Para que surja la diferencia ac/nc, la longitud del cronograma no contiguo debe ser al menosdomáximonortedo=4.{\displaystyle C_{\max }^{nc}=4.}
  • La diferencia máxima c/ncsorberIdomáximodo(I)/domáximonortedo(I){\displaystyle \sup _{I}C_{\max }^{c}(I)/C_{\max }^{nc}(I)}es al menos5/4{\displaystyle 5/4}y como máximo2.{\displaystyle 2.}
  • Decidir si existe una diferencia c/nc en una instancia dada es un problema NP-completo.

Además, propusieron las dos siguientes conjeturas, que aún no han sido probadas:

  • Para que surja la diferencia ac/nc, al menosnorte=7{\displaystyle n=7}Se requieren tareas.
  • sorberIdomáximodo(I)/domáximonortedo(I)=5/4{\displaystyle \sup _{I}C_{\max }^{c}(I)/C_{\max }^{nc}(I)=5/4}

Existen problemas de programación relacionados en los que cada trabajo consta de varias operaciones que deben ejecutarse en secuencia (en lugar de en paralelo). Estos son los problemas de programación de talleres abiertos , talleres de flujo y talleres de producción .

Referencias

  1. 1 2 3 4 Johannes, Berit (2006-10-01). "Programación de trabajos paralelos para minimizar el tiempo de finalización". Journal of Scheduling . 9 (5): 433– 452. doi : 10.1007/s10951-006-8497-6 . hdl : 20.500.11850/36804 . ISSN 1099-1425 . S2CID 18819458 .  
  2. 1 2 3 Jansen, Klaus.; Thöle, Ralf. (2010-01-01). "Algoritmos de aproximación para la planificación de trabajos paralelos". SIAM Journal on Computing . 39 (8): 3571– 3615. doi : 10.1137/080736491 . ISSN 0097-5397 . 
  3. 1 2 3 Drozdowski, Maciej (2009). "Planificación para el procesamiento paralelo". Comunicaciones y redes informáticas . doi : 10.1007/978-1-84882-310-5 . ISBN 978-1-84882-309-9ISSN 1617-7975 
  4. Veltman, B; Lageweg, B. J; Lenstra, J. K (1990-12-01). "Planificación de multiprocesadores con retrasos de comunicación" . Computación paralela . 16 (2): 173– 182. doi : 10.1016/0167-8191(90)90056-F . ISSN 0167-8191 . 
  5. Graham, RL ; Lawler, EL; Lenstra, JK; Rinnooy Kan, AHG (1979). "Optimización y aproximación en la secuenciación y programación deterministas: una revisión" (PDF) . Actas del Instituto de Investigación Avanzada sobre Optimización Discreta y Aplicaciones de Sistemas del Panel de Ciencias de Sistemas de la OTAN y del Simposio de Optimización Discreta . Elsevier. págs. (5) 287–326. 
  6. Codd, EF (1960-06-01). "Programación de multiprogramas" . Communications of the ACM . 3 (6): 347– 350. doi : 10.1145/367297.367317 . S2CID 14701351 . 
  7. Shmoys, David; Tardos, Eva (1993). "Un algoritmo de aproximación para el problema de asignación generalizado". Mathematical Programming . 62 : 461–474 . doi : 10.1007/BF01585178 .
  8. 1 2 Du, Jianzhong.; Leung, Joseph Y.-T. (1 de noviembre de 1989). "Complejidad de la programación de sistemas de tareas paralelas". SIAM Journal on Discrete Mathematics . 2 (4): 473– 487. doi : 10.1137/0402042 . ISSN 0895-4801 . 
  9. Henning, Sören; Jansen, Klaus; Rau, Malin; Schmarje, Lars (1 de enero de 2020). "Resultados de complejidad e inaproximabilidad para la planificación de tareas paralelas y el empaquetamiento de franjas". Theory of Computing Systems . 64 (1): 120– 140. arXiv : 1705.04587 . doi : 10.1007/s00224-019-09910-6 . ISSN 1433-0490 . S2CID 67168004 .  
  10. Coffman, Edward; Graham, Ronald (1972). "Planificación óptima para sistemas de dos procesadores" . Acta Informatica : 200–213 .
  11. Garey, MR; Graham, RL (1 de junio de 1975). "Límites para la planificación de multiprocesadores con restricciones de recursos" . SIAM Journal on Computing . 4 (2): 187– 200. doi : 10.1137/0204015 . ISSN 0097-5397 . 
  12. Turek, John; Wolf, Joel L.; Yu, Philip S. "Algoritmos aproximados para la planificación de tareas paralelizable | Actas del cuarto simposio anual de la ACM sobre algoritmos y arquitecturas paralelas". dl.acm.org . doi : 10.1145/140901.141909 . S2CID 15607549 . 
  13. Ludwig, Walter; Tiwari, Prasoon (1994). "Programación de tareas paralelas flexibles y no flexibles | Actas del quinto simposio anual ACM-SIAM sobre algoritmos discretos" . Quinto Simposio Anual {ACM-SIAM} sobre Algoritmos Discretos (SODA) : 167–176 . ISBN 978-0-89871-329-9.
  14. ^ Feldmann, Anja; Sgall, Jiří; Teng, Shang-Hua (1 de agosto de 1994). "Programación dinámica en máquinas paralelas" . Informática Teórica . 130 (1): 49– 72. doi : 10.1016/0304-3975(94)90152-X . hdl : 21.11116/0000-0000-374B-F . ISSN 0304-3975 . 
  15. Amoura, Abdel Krim; Bampis, Evripidis; Kenyon, Claire; Manoussakis, Yannis (1 de febrero de 2002). "Programación de tareas multiprocesador independientes". Algorithmica . 32 (2): 247– 261. doi : 10.1007/s00453-001-0076-9 . ISSN 1432-0541 . S2CID 17256951 .  
  16. Jansen, Klaus; Porkolab, Lorant (1 de marzo de 2002). "Esquemas de aproximación en tiempo lineal para la planificación de tareas paralelas maleables". Algorithmica . 32 (3): 507– 520. doi : 10.1007/s00453-001-0085-8 . hdl : 11858/00-001M-0000-0014-7B6C-D . ISSN 1432-0541 . S2CID 2019475 .  
  17. Jansen, Klaus (2012). "Un algoritmo de aproximación (3/2+ε) para la planificación de tareas paralelas moldeables y no moldeables". Actas del vigésimo cuarto simposio anual de la ACM sobre paralelismo en algoritmos y arquitecturas . págs. 224–235 . doi : 10.1145/2312005.2312048 . ISBN  978-1-4503-1213-4. S2CID 6586439 . 
  18. "Algoritmos aproximados para la planificación de tareas paralelizable | Actas del cuarto simposio anual de la ACM sobre algoritmos y arquitecturas paralelas". doi : 10.1145/140901.141909 . S2CID 15607549 . {{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  19. Błądek, Iwo; Drozdowski, Maciej; Guinand, Frédéric; Schepler, Xavier (1 de octubre de 2015). "Sobre la programación de tareas paralelas contiguas y no contiguas" . Diario de programación . 18 (5): 487– 495. doi : 10.1007/s10951-015-0427-z . ISSN 1099-1425 .