Table Of ContentProcesamiento 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.