ebook img

Procesamiento Paralelo. Balance de Carga Din amico en Algoritmos de Sorting PDF

278 Pages·2006·2.14 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Procesamiento Paralelo. Balance de Carga Din amico en Algoritmos de Sorting

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:
1Facultad de Inform atica, Universidad Nacional de La Plata. 2Universidad de la Rep ublica,Uruguay. 3Universidad Nacional de La Plata,Argentina cution Time of Full Multigrid Methods on Parallel Computers. IEEE Transactions on Parallel and Distributed Systems, 8(6):562{573, June 1997.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.