Procesamiento Paralelo. Balance De Carga Din Amico En
Total Page:16
File Type:pdf, Size:1020Kb
Pro cesamiento Paralelo Balance de Carga Dinamico en Algoritmos de Sorting R Marcelo Naiouf Directores Gregory J Randall y Armando E De Giusti Tesis presentada para la obtencion del Grado Academico de Do ctor en Ciencias Facultad de Ciencias Exactas Universidad Nacional de La Plata Junio de Facultad de Informatica Universidad Nacional de La Plata Universidad de la RepublicaUrugua y Universidad Nacional de La PlataArgentina ii Dedicatoria A Paula Tomas y Pilar A mis padres A la memoria de mis abuelos iii iv DEDICATORIA Resumen Es innegable la imp ortancia y creciente interes en el pro cesamiento paralelo dentro de la Ciencia de la Computacion convirtiendose en una de las areas que han transformado mas profundamente a la disciplina Diversas razones justican esta hecho como el crecimiento de la p otencia de computo la existencia de problemas donde el tiemp o de resolucion secuencial es inaceptable la p osibilidad de map ear la concurrencia implcita del problema a pro cesos paralelos para minimizar el tiemp o de respuesta etc Un sistema paralelo es la combinacion de un algoritmo paralelo y la maquina sobre la cual este se ejecuta y ambos factores p oseen numerosas variantes Resp ecto de los algoritmos paralelos pueden ser esp ecicados utilizando una diversidad de mo delos y paradigmas Por el lado de las arquitecturas de sop orte si bien to das p oseen mas de un pro cesador pueden diferir en varias dimensiones tales como el mecanismo de control la organizacion del espacio de direcciones la granularidad de los pro cesadores y la red de interconexion Entre los ob jetivos del paralelismo se encuentran reducir el tiemp o de ejecucion y hacer uso eciente de los recursos de computo El uso desigual de los elementos de pro cesamiento puede causar p obre eciencia o hacer que el tiemp o paralelo sea mayor que el secuencial El balance de carga consiste en dado un conjunto de tareas que comprenden un algoritmo complejo y un conjunto de computadoras donde ejecutarlas encontrar el map eo de tareas a computadoras que resulte en que cada una tenga aproximadamente igual traba jo Un map eo que balancea la carga de los pro cesadores incrementa la eciencia global y reduce el tiemp o de ejecucion El problema de asignacion o map eo es NP completo para un sistema general con n pro cesadores y por lo tanto la tarea de encontrar una asignacion de costo mnimo es computacionalmente intratable salvo para sistemas muy chicos Por esta razon pueden utilizarse enfo ques alternativos como la rela jacion el desarrollo de soluciones para casos particulares la optimizacion enumerativa o la optimizacion aproximada uso de heursticas que brindan soluciones suboptimas aunque aceptables En algunos casos el tiemp o de computo aso ciado con una tarea puede determinarse a priori En tales circunstancias se puede realizar el map eo antes de comenzar la com putacion balance de carga estatico Para una clase imp ortante y creciente de aplica ciones la carga de traba jo para una tarea particular puede mo dicarse en el curso de una computacion y no puede estimarse de antemano en estos casos el map eo deb e cambiar durante el computo balance de carga dinamico realizando etapas de balanceo durante v vi RESUMEN la ejecucion de la aplicacion En general el balance estatico es de menor complejidad que el dinamico p ero tambien menos versatil y escalable Conceptualmente los meto dos dinamicos requieren alguna forma de mantener una vision global del sistema y algun mecanismo de nego ciacion para la migracion de pro cesos yo datos Si bien p otencialmente pueden mejorar la p erformance global de la aplicacion redistribuyendo la carga entre los elementos de pro cesamiento esta actividad se realiza a exp ensas de computacionutil pro duce un overhead de comunicacion y requiere espacio extra para mantener la informacion No puede establecerse un meto do efectivo y eciente en to dos los casos Siempre la eleccion dep ende de la aplicacion y la plataforma de sop orte y en muchos casos es necesario adaptar o combinar meto dos existentes para lograr buena p erformance El sorting ordenacion es una de las op eraciones mas comunes realizadas en una computadora La tarea del sorting se dene como el acomo damiento de un conjunto desordenado de elementos en orden creciente o decreciente Numerosas aplicaciones requieren que los datos se encuentren ordenados para p o der accederlos de manera mas eciente El sorting es imp ortante dentro del computo paralelo por su relacion cercana con el ruteo de datos entre pro cesadores parte esencial de algunos algoritmos Muchos problemas de routing pueden resolverse ordenando los paquetes en sus direcciones de destino mientras varios algoritmos de sorting se basan en esquemas de ruteo para su implementacion eciente Tambien la op eracion de ordenacion es utilizada con frecuencia en el pro cesamiento de Bases de Datos p or ejemplo en op eraciones con clausulas Distinct Order By y Group By en SQL Los algoritmos de sorting pueden categorizarse como basados en comparacion y no basados en comparacion Los primeros ordenan comparando rep etidamente pares de ele mentos e intercambiandolos si es necesario Para n items el sorting secuencial basado en comparacion tiene una cota inferior en tiemp o de n log n En particular merge sort es O n log n lo que no p ermite mejoras sustanciales en los algoritmos secuenciales Los meto dos que no se basan en comparacion usan ciertas propiedades cono cidas de los elementos y la cota inferior es n Existen numerosos algoritmos de ordenacion tanto secuenciales como paralelos El sorting paralelo incluyetanto las versiones distribuidas de algoritmos secuenciales clasicos como meto dos directamente paralelos El pro ceso de paralelizar un algoritmo de sorting secuencial involucra distribuir los elementos en los pro cesadores disp onibles lo que implica tratar temas tales como donde se almacenan las secuencias de entrada y salida o como se realizan las comparaciones Los problemas de sorting con gran volumen de datos por pro cesador son los mas interesantes y sobre los cuales las maquinas paralelas actuales funcionan mejor debido a su p otencia de computo y capacidad de memoria Una gran parte de los meto dos de balance de carga se reeren a problemas en los que se cuenta con alguna manera de cono cer cual es la carga por ejemplo expresandola como una relacion de la cantidad de puntos de entrada de una grilla a pro cesar Resulta interesante atacar el problema del balance de la carga en aplicaciones donde el traba jo no dep ende del tamano de los datos de entrada sino de determinada caracterstica de los vii mismos Muchos de los algoritmos de sorting se encuentran dentro de esta clase Algunas tecnicas de sorting intentan balancear la carga mediante un muestreo inicial de los datos a ordenar y una distribucion de los mismos de acuerdo a pivots Otras redistribuyen listas parcialmente ordenadas de mo do que cada pro cesador almacene un numero aproximadamente igual de claves y to dos tomen parte del pro ceso de merge durante la ejecucion Esta Tesis presenta un nuevo meto do que balancea dinamicamente la carga basado en un enfo que diferente buscando realizar una distribucion del traba jo utilizando un estimador que permita predecir la carga de traba jo p endiente El meto do propuesto es una variante de Sorting by Merging Paralelo esto es una tecnica basada en comparacion Las ordenaciones en los blo ques se realizan mediante el meto do de Burbuja o Bubble Sort con centinela En este caso el traba jo a realizar en terminos de comparaciones e intercambios se encuentra afectada por el grado de desorden de los datos Se estudiolaevolucion de la cantidad de traba jo en cada iteracion del algoritmo para diferentes tip os de secuencias de entrada n datos con valores de a n sin rep eticion datos al azar con distribucion normal observandose que el traba jo disminuye en cada iteracion Esto se utilizo para obtener una estimacion del traba jo restante esp erado a partir de una iteracion determinada y basarse en el mismo para corregir la distribucion de la carga Con esta idea el meto do no distribuye inicialmente entre las tareas to dos los datos a ordenar sino que se reserva un p orcenta je de los mismos Luego de una determinada cantidad de vueltas en particular con el de las iteraciones estima el traba jo restante de cada tarea basado en lo ya realizado y distribuye dinamicamente los datos reservados de manera inversamente prop orcional al traba jo restante estimado para cada tarea El esquema presentado utiliza el paradigma masterslave y fue implementado en una arquitectura paralela con comunicacion por bus cluster de PCs homogeneas aunque puede ejecutarse tambien en maquinas de memoria compartida Las caractersticas prin cipales del meto do son su sencilllez efectividad comunicacion limitada y p osibilidad de aplicacion a diferentes problemas Se presentan resultados que muestran la b ondad de las estimaciones y que se balancea la carga de traba jo adecuadamente en un alto p orcenta je de los casos viii RESUMEN Prefacio El tema de esta Tesis se enmarca en el proyecto de Pro cesamiento Concurrente y Paralelo que el autor co dirige dentro del Instituto de Investigacion en Informatica LIDI I I ILIDI En particular los asp ectos de metricas del paralelismo y balance de carga son de interes en el contexto del proyecto mencionado El traba jo esta organizado en tres Partes y cada Parte se encuentra dividida en Captulos La Parte Ise reere a asp ectos teoricos generales En el Captulo se presentan con ceptos basicos de paralelismo mo delos de concurrencia y de computacion