Procesamiento Paralelo(cid:1) Balance de Carga Din(cid:2)amico en Algoritmos de Sorting (cid:1) R(cid:1) Marcelo Naiouf (cid:2) Directores(cid:2) Gregory J(cid:1) Randall (cid:3) y Armando E(cid:1) De Giusti Tesis presentada para la obtenci(cid:3)on del Grado Acad(cid:3)emico de Doctor en Ciencias Facultad de Ciencias Exactas Universidad Nacional de La Plata Junio de (cid:4)(cid:5)(cid:5)(cid:6) (cid:1) Facultad de Inform(cid:1)atica(cid:2) Universidad Nacional de La Plata (cid:2) Universidad de la Repu(cid:1)blica(cid:2)Uruguay (cid:3) Universidad Nacional de La Plata(cid:2)Argentina ii Dedicatoria A Paula(cid:1) Tom(cid:2)as y Pilar A mis padres A la memoria de mis abuelos iii iv DEDICATORIA Resumen Es innegable la importancia y creciente inter(cid:2)es en el procesamiento paralelo dentro de la Ciencia de la Computaci(cid:2)on(cid:1) convirti(cid:2)endose en una de las a(cid:2)reas que han transformado m(cid:2)as profundamente a ladisciplina(cid:3) Diversas razones justi(cid:4)can esta hecho(cid:1) como el crecimiento de la potencia de c(cid:2)omputo(cid:1) la existencia de problemas donde el tiempo de resoluci(cid:2)on secuencial es inaceptable(cid:1) la posibilidadde mapear la concurrencia impl(cid:2)(cid:5)citadel problema a procesos paralelos para minimizar el tiempo de respuesta(cid:1) etc(cid:3) Un sistema paralelo es la combinaci(cid:2)on de un algoritmo paralelo y la m(cid:2)aquina sobre la cual (cid:2)este se ejecuta(cid:1) y ambos factores poseen numerosas variantes(cid:3) Respecto de los algoritmos paralelos(cid:1) pueden ser especi(cid:4)cados utilizando una diversidad de modelos y paradigmas(cid:3) Por el lado de las arquitecturas de soporte(cid:1) si bien todas poseen m(cid:2)as de un procesador(cid:1) pueden diferir en varias dimensiones tales como el mecanismo de control(cid:1) la organizacio(cid:2)n del espacio de direcciones(cid:1) la granularidad de los procesadores y la red de interconexio(cid:2)n(cid:3) Entre losobjetivos delparalelismoseencuentran reducireltiempodeejecucio(cid:2)n yhacer usoe(cid:4)cientedelosrecursosdec(cid:2)omputo(cid:3) Elusodesigualdeloselementosdeprocesamiento puede causar pobre e(cid:4)ciencia o hacer que el tiempo paralelo sea mayor que el secuencial(cid:3) Elbalance de carga consiste en(cid:1) dado un conjunto de tareas que comprenden un algoritmo complejo y un conjunto de computadoras donde ejecutarlas(cid:1) encontrar el mapeo de tareas a computadoras que resulte en que cada una tenga aproximadamente igual trabajo(cid:3) Un mapeo que balancea la carga de los procesadores incrementa la e(cid:4)ciencia global y reduce el tiempo de ejecuci(cid:2)on(cid:3) El problema de asignaci(cid:2)on o mapeo es NP(cid:6)completo para un sistema general con n procesadores(cid:1) y por lo tanto la tarea de encontrar una asignaci(cid:2)on de costo m(cid:2)(cid:5)nimo es computacionalmente intratable salvo para sistemas muy chicos(cid:3) Por esta razo(cid:2)n pueden utilizarse enfoques alternativos como la relajacio(cid:2)n(cid:1) el desarrollo de soluciones para casos particulares(cid:1)laoptimizaci(cid:2)onenumerativaolaoptimizaci(cid:2)onaproximada(cid:7)usodeheur(cid:2)(cid:5)sticas que brindan soluciones sub(cid:2)optimas aunque aceptables(cid:8)(cid:3) En algunos casos el tiempo de c(cid:2)omputo asociado con una tarea puede determinarse a priori(cid:3) En tales circunstancias(cid:1) se puede realizar el mapeo antes de comenzar la com(cid:6) putaci(cid:2)on (cid:7)balance de carga est(cid:1)atico(cid:8)(cid:3) Para una clase importante y creciente de aplica(cid:6) ciones(cid:1) la carga de trabajo para una tarea particular puede modi(cid:4)carse en el curso de una computacio(cid:2)n y no puede estimarse de antemano(cid:9) en estos casos el mapeo debe cambiar durante el c(cid:2)omputo (cid:7)balance de carga dina(cid:1)mico(cid:8)(cid:1) realizando etapas de balanceo durante v vi RESUMEN la ejecucio(cid:2)n de la aplicaci(cid:2)on(cid:3) En general(cid:1) el balance esta(cid:2)tico es de menor complejidadque el din(cid:2)amico(cid:1)pero tambi(cid:2)en menos vers(cid:2)atil y escalable(cid:3) Conceptualmente los m(cid:2)etodos dina(cid:2)micos requieren alguna forma de mantener una visi(cid:2)on global del sistema y algu(cid:2)n mecanismo de negociaci(cid:2)on para lamigracio(cid:2)ndeprocesosy(cid:10)odatos(cid:3) Sibienpotencialmentepuedenmejorarlaperformance globalde laaplicaci(cid:2)onredistribuyendo la carga entre los elementos de procesamiento(cid:1) esta actividadse realizaaexpensas de computacio(cid:2)nu(cid:2)til(cid:1)produceun overhead decomunicaci(cid:2)on y requiere espacio extra para mantener la informacio(cid:2)n(cid:3) No puede establecerse un m(cid:2)etodo efectivo y e(cid:4)ciente en todos los casos(cid:3) Siempre la eleccio(cid:2)n depende de la aplicaci(cid:2)on y la plataforma de soporte(cid:1) y en muchos casos es necesario adaptar o combinar metodos existentes para lograr buena performance(cid:3) El sorting (cid:7)ordenacio(cid:2)n(cid:8) es una de las operaciones m(cid:2)as comunes realizadas en una computadora(cid:3) La tarea del sorting se de(cid:4)ne como el acomodamiento de un conjunto desordenado de elementos en orden creciente (cid:7)o decreciente(cid:8)(cid:3) Numerosas aplicaciones requieren que los datos se encuentren ordenados para poder accederlos de manera m(cid:2)as e(cid:4)ciente(cid:3) El sorting es importante dentro del c(cid:2)omputo paralelo por su relaci(cid:2)on cercana con el ruteo de datos entre procesadores(cid:1) parte esencial de algunos algoritmos(cid:3) Muchos problemas de routing pueden resolverse ordenando los paquetes en sus direcciones de destino(cid:1) mientras varios algoritmos de sorting se basan en esquemas de ruteo para su implementaci(cid:2)on e(cid:4)ciente(cid:3) Tambi(cid:2)en la operaci(cid:2)on de ordenaci(cid:2)on es utilizada con frecuencia en el procesamiento de Bases de Datos(cid:1) porejemplo en operaciones con cl(cid:2)ausulasDistinct(cid:1) Order By y Group By en SQL(cid:3) Los algoritmos de sorting pueden categorizarse como basados en comparacio(cid:1)n y no basados en comparaci(cid:1)on(cid:3) Los primeros ordenan comparando repetidamente pares de ele(cid:6) mentos e intercambi(cid:2)andolos si es necesario(cid:3) Para n items(cid:1) el sorting secuencial basado en comparaci(cid:2)on tiene una cota inferior en tiempo de (cid:11)(cid:7)nlogn(cid:8)(cid:3) En particular(cid:1) merge(cid:2) sort es O(cid:7)nlogn(cid:8)(cid:1) lo que no permite mejoras sustanciales en los algoritmos secuenciales(cid:3) Los m(cid:2)etodos que no se basan en comparaci(cid:2)on usan ciertas propiedades conocidas de los elementos(cid:1) y la cota inferior es (cid:11)(cid:7)n(cid:8)(cid:3) Existen numerosos algoritmos de ordenaci(cid:2)on tanto secuenciales como paralelos(cid:3) El sorting paraleloincluye tanto las versiones distribuidas de algoritmossecuenciales cl(cid:2)asicos como m(cid:2)etodos directamente paralelos(cid:3) El proceso de paralelizar un algoritmo de sorting secuencialinvolucradistribuirloselementosenlosprocesadoresdisponibles(cid:1)loqueimplica tratar temas tales como d(cid:2)onde se almacenan las secuencias de entrada y salida(cid:1) o c(cid:2)omo se realizan las comparaciones(cid:3) Los problemas de sorting con gran volumen de datos por procesador son los m(cid:2)as interesantes y sobre los cuales las m(cid:2)aquinas paralelas actuales funcionan mejor(cid:1) debido a su potencia de c(cid:2)omputo y capacidad de memoria(cid:3) Una gran parte de los m(cid:2)etodos de balance de carga se re(cid:4)eren a problemas en los que se cuenta con alguna manera de conocer cu(cid:2)al es la carga(cid:1) por ejemplo(cid:1) expres(cid:2)andola como una relaci(cid:2)on de la cantidad de puntos de entrada de una grilla a procesar(cid:3) Resulta interesante atacar el problema del balance de la carga en aplicaciones donde el trabajo no depende del taman(cid:12)o de los datos de entrada sino de determinada caracter(cid:2)(cid:5)stica de los vii mismos(cid:3) Muchos de los algoritmos de sorting se encuentran dentro de esta clase(cid:3) Algunas t(cid:2)ecnicas de sorting intentan balancear la carga mediante un muestreo inicial de los datos a ordenar y una distribucio(cid:2)n de los mismos de acuerdo a pivots(cid:3) Otras redistribuyen listas parcialmente ordenadas de modo que cada procesador almacene un nu(cid:2)mero aproximadamente igual de claves(cid:1) y todos tomen parte del proceso de merge durante la ejecuci(cid:2)on(cid:3) Esta Tesis presenta un nuevo m(cid:2)etodo que balancea din(cid:2)amicamente la carga basado en un enfoque diferente(cid:1) buscando realizar una distribuci(cid:2)on del trabajo utilizando un estimador que permita predecir la carga de trabajo pendiente(cid:3) El m(cid:2)etodo propuesto es una variante de Sorting by Merging Paralelo(cid:1) esto es(cid:1) una t(cid:2)ecnica basada en comparaci(cid:2)on(cid:3) Las ordenaciones en los bloques se realizan mediante el m(cid:2)etodo de Burbuja o Bubble Sort con centinela(cid:3) En este caso(cid:1) el trabajo a realizar (cid:7)en t(cid:2)erminos de comparaciones e intercambios(cid:8) se encuentra afectada por el grado de desorden de los datos(cid:3) Se estudi(cid:2)o la evoluci(cid:2)on de la cantidad de trabajo en cada iteracio(cid:2)n del algoritmo para diferentes tipos de secuencias de entrada (cid:7)n datos con valores de (cid:13) a n sin repetici(cid:2)on(cid:1) datos al azar con distribucio(cid:2)n normal(cid:8)(cid:1) observ(cid:2)andose que el trabajo disminuye en cada iteraci(cid:2)on(cid:3) Esto se utilizo(cid:2) para obtener una estimaci(cid:2)on del trabajo restante esperado a partir de una iteraci(cid:2)on determinada(cid:1) y basarse en el mismo para corregir la distribuci(cid:2)on de la carga(cid:3) Con esta idea(cid:1) el m(cid:2)etodo no distribuye inicialmente entre las tareas todos los datos a ordenar(cid:1) sino que se reserva un porcentaje de los mismos(cid:3) Luego de una determinada cantidad de (cid:14)vueltas(cid:15) (cid:7)en particular(cid:1) con el (cid:16)(cid:17) de las iteraciones(cid:8)(cid:1) estima el trabajo restante de cada tarea basado en lo ya realizado(cid:1) y distribuye din(cid:2)amicamente los datos reservados de manera inversamente proporcional al trabajo restante estimado para cada tarea(cid:3) El esquema presentado utiliza el paradigma master(cid:3)slave(cid:1) y fue implementado en una arquitectura paralela con comunicacio(cid:2)n por bus (cid:7)cluster de PCs homog(cid:2)eneas(cid:8)(cid:1) aunque puede ejecutarse tambi(cid:2)en en m(cid:2)aquinas de memoria compartida(cid:3) Las caracter(cid:2)(cid:5)sticas prin(cid:6) cipales del m(cid:2)etodo son su sencilllez(cid:1) efectividad(cid:1) comunicaci(cid:2)on limitada(cid:1) y posibilidad de aplicaci(cid:2)on a diferentes problemas(cid:3) Se presentan resultados que muestran la bondad de las estimaciones y que se balancea la carga de trabajo adecuadamente en un alto porcentaje de los casos(cid:3) viii RESUMEN Prefacio El tema de esta Tesis se enmarca en el proyecto de Procesamiento Concurrente y Paralelo que el autor codirige dentro del Instituto de Investigacio(cid:2)n en Inform(cid:2)aticaLIDI (cid:7)III(cid:6)LIDI(cid:8)(cid:3) En particular(cid:1) los aspectos de m(cid:2)etricas del paralelismo y balance de carga son de inter(cid:2)es en el contexto del proyecto mencionado(cid:3) El trabajo est(cid:2)a organizado en tres Partes(cid:1) y cada Parte se encuentra dividida en Cap(cid:2)(cid:5)tulos(cid:3) La Parte I se re(cid:4)ere a aspectos te(cid:2)oricos generales(cid:3) En el Cap(cid:2)(cid:5)tulo (cid:13) se presentan con(cid:6) ceptos b(cid:2)asicos de paralelismo(cid:1) modelos de concurrencia y de computaci(cid:2)on paralela(cid:3) En el Cap(cid:2)(cid:5)tulo(cid:18) se incluyen clasi(cid:4)caciones de arquitecturas paralelas por distintos criterios y se describen algunas ma(cid:2)quinasreales(cid:3) En el Cap(cid:2)(cid:5)tulo(cid:19) se presentan lostipos de paralelismo(cid:1) los principales paradigmas de computacio(cid:2)n paralela y una metodolog(cid:2)(cid:5)a de disen(cid:12)o de algo(cid:6) ritmos paralelos(cid:3) En el Cap(cid:2)(cid:5)tulo (cid:20) se introduce el tema de las m(cid:2)etricas del paralelismo(cid:1) presentando distintas medidas para evaluar un sistema paralelo as(cid:2)(cid:5) como los modelos de speedup m(cid:2)as conocidos y el an(cid:2)alisis de escalabilidad(cid:3) La Parte II trata en el Cap(cid:2)(cid:5)tulo (cid:16) la asignaci(cid:2)on de tareas a procesadores y el balance de carga(cid:1) presentando t(cid:2)ecnicas de balanceo esta(cid:2)ticas y dina(cid:2)micas(cid:3) En el Cap(cid:2)(cid:5)tulo (cid:21) se analiza el tema del Sorting en general(cid:1) incluyendo algunos de los m(cid:2)etodos secuenciales y paralelos m(cid:2)as conocidos(cid:3) En el Cap(cid:2)(cid:5)tulo (cid:22) se presenta el m(cid:2)etodo de sorting paralelo con balance din(cid:2)amico de carga propuesto(cid:3) En el Cap(cid:2)(cid:5)tulo (cid:23) se analizan los resultados obtenidos(cid:1) y en el Cap(cid:2)(cid:5)tulo (cid:24) se incluyen las conclusiones y las posibilidades de trabajo futuro(cid:3) La parte III est compuesta por los ap(cid:2)endices(cid:3) El Ap(cid:2)endice A se re(cid:4)ere a Complejidad de Funciones y Ana(cid:2)lisis de Orden(cid:3) El Ap(cid:2)endice B describe el modelo de arquitectura y software utilizado(cid:3) Finalmente(cid:1) se incluyen una Lista de Figuras y la Bibliograf(cid:2)(cid:5)a(cid:3) ix x PREFACIO
Description: