REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD DEL ZULIA FACULTAD EXPERIMENTAL DE CIENCIAS DIVISIÓN DE PROGRAMAS ESPECIALES LICENCIATURA EN COMPUTACIÓN
Rendimiento de un algoritmo de compresión probabilístico en una plataforma distribuida basada en MPI Trabajo especial de grado presentado como requisito para optar al título de Licenciado en Computación Autor: Br. Diego Enrique Finol González Tutor: M.Sc. Carlos Rincón
Maracaibo, octubre de 2008
Rendimiento de un algoritmo de compresión probabilístico en una plataforma distribuida basada en MPI
Diego Enrique Finol González C.I. No.: 17.738.266 Teléfono: 58-261-7428891 Urbanización El Portal. Calle 51, No. 14-59 Correo electrónico: diegoenriquefinol@gmail.com
M.Sc. Carlos Rincón C.I. No.: 12.590.157 Correo electrónico: rincon.carlos@gmail.com
Finol González, Diego Enrique. Rendimiento de un algoritmo de compresión probabilístico en una plataforma distribuida basada en MPI. Trabajo Especial de Grado. Universidad del Zulia. Facultad Experimental de Ciencias. División de Programas Especiales. Licenciatura en Computación. Maracaibo. Venezuela. 2009. XXX pp. RESUMEN El rendimiento de un algoritmo de compresión probabilístico en una plataforma de programación distribuida basada en MPI será caracterizado, para luego cotejarlo con su desempeño en plataformas de programación centralizada. Además, se formula un modelo para prever este comportamiento. Este tema, no tratado con anterioridad, aumenta los datos conocidos sobre este algoritmo y contribuye al conocimiento del desempeño de algoritmos e implementaciones similares. La metodología necesaria para esta investigación es experimental, pues la manipulación de variables en las pruebas, en un racimo de varias estaciones de trabajo, permite la obtención de resultados necesarios para llevar a cabo el objetivo propuesto. Palabras Clave: algoritmo de compresión, paso de mensajes, computación distribuida. Dirección electrónica: diegoenriquefinol@gmail.com
Finol González, Diego Enrique. Rendimiento de un algoritmo de compresión probabilístico en una plataforma distribuida basada en MPI. Trabajo Especial de Grado. Universidad del Zulia. Facultad Experimental de Ciencias. División de Programas Especiales. Licenciatura en Computación. Maracaibo. Venezuela. 2009. XXX pp. ABSTRACT The performance characteristics of a probabilistic compression algorithm in a distributed computing platform based on MPI will be analyzed and compared with its performance in a centralized programming platform. Also, a model will be formed to describe its behavior. This subject, previously unstudied, will add to the available information about this algorithm and contribute to the knowledge of similar algorithms and implementations. The main method necessary for our research is experimentation, for it is through the manipulation of test variables in a cluster of work stations that allows for the discovery of the needed results to achieve our stated objectives. Keywords: compression algorithm, message passing, distributed computing. E-mail: diegoenriquefinol@gmail.com
Índice General Pág. 1. Planteamiento del Problema………………………...……………..…………..
6
2. Formulación del problema…………………………….…………......…...…....
7
3. Objetivos………………………………………………………………………….
7
3.1. Objetivo General………………………………………………………..…......
7
3.2. Objetivos Específicos…………………………………………..……………..
7
4. Justificación………………………………………………….……….…..……...
7
5. Metodología……………….…………….……………………………………...... 8 6. Estudio de factibilidad...………………..……………………………………….. 8 7. Resultados que se esperan lograr ………………………………..…………... 10 8. Cronograma de actividades…………………………………………………….
10
Índice de referencias bibliográficas……………………………………………….
11
6 1. Planteamiento del Problema Actualmente, la sociedad está inmersa en la tecnología, vista ésta como un conjunto de teorías y de técnicas que permiten el aprovechamiento práctico del conocimiento científico (RAE, 2008), incluyendo la Computación, que hoy se encuentra en los ámbitos más remotos del quehacer. Esta realidad moderna del mundo tecnológico no es producto de la casualidad, sino reflejo de la búsqueda del hombre por mejorar su calidad de vida, satisfaciendo necesidades esenciales (alimentación, vestimenta, vivienda, protección personal), para obtener placeres corporales y estéticos (deportes, música, hedonismo en todas sus formas) y como medio para satisfacer deseos (Colaboradores de Wikipedia, 2008). Es a partir de este propósito que la tecnología se ha desarrollado, y se sigue desarrollando de la misma manera. En el ramo de las ciencias de la Computación, dichas mejorar vienen evidenciándose en el aumento de capacidad de almacenamiento de datos y el aumento en potencial de procesamiento de los artefactos a nuestra disposición, con la respectiva reducción de tiempo empleado en múltiples tareas. Además, los ambientes distribuidos -definidos como un gran número de computadoras organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida según Colaboradores de Wikipedia (2008)- vienen surgiendo con ciertas posibilidades y aplicaciones que los convierten en un enfoque interesante a la hora de estudiar ciertos problemas de procesamiento de datos. Es precisamente este enfoque que acabamos de mencionar, el de ambientes distribuidos, en el que se plantea esta investigación, -implementado la "Interfaz de Paso de Mensajes" (MPI o Message Passing Interface), con el propósito de caracterizar el rendimiento de un algoritmo de compresión distribuido, lo cual nos permitirá conocer cómo se comporta éste en un ambiente donde sean varios procesadores los encargados de llevarlo a término, en comparación con su ejecución computacional centralizada -utilizando un solo procesador- cuyas características ya han sido suficientemente especificadas en investigaciones anteriores (Rodríguez Ávila, 2006).
7 2.- Formulación del Problema El planteamiento anterior nos permite llegar a la siguiente interrogante: ¿Cómo se caracterizará el rendimiento del algoritmo de compresión probabilístico implementado en una plataforma de programación distribuida basada en MPI? 3.- Objetivos 3.1.- Objetivo General Caracterizar el rendimiento de un algoritmo de compresión probabilístico basado en la teoría de la información implementado en una plataforma de programación distribuida aplicando la Interfaz de Paso de Mensajes. 3.2.- Objetivos Específicos •
Determinar la viabilidad de implementar el algoritmo de compresión probabilístico objeto de estudio en una plataforma distribuida basada en MPI.
•
Evaluar la necesidad de modificar el algoritmo de compresión probabilístico para su funcionamiento en una plataforma de programación distribuida basada en MPI.
•
Implementar un algoritmo de compresión probabilístico en un lenguaje de programación de alto nivel sobre una plataforma distribuida.
•
Formular un modelo que caracterice el rendimiento del algoritmo de compresión probabilístico objeto de estudio en relación con la cantidad de computadoras utilizadas en su puesta en marcha.
•
Comparar el rendimiento del algoritmo de compresión probabilístico objeto de estudio en una plataforma distribuida basada en MPI con su rendimiento en una plataforma centralizada.
4.- Justificación La investigación planteada permitirá conocer las características más resaltantes del rendimiento del algoritmo de compresión probabilístico objeto de estudio en una plataforma distribuida basada en MPI -punto no tratado en investigaciones precedentes
8 y que aumentará la información disponible acerca de este algoritmo-, permitiendo comparar esta solución con las implementaciones del algoritmo de forma centralizada, y además contribuyendo al conocimiento de los problemas que afectan el desempeño de algoritmos e implementaciones similares, así como los puntos positivos de este enfoque. Con los resultados de esta investigación se podrá aportar también recomendaciones, sugerencia o nuevos temas de estudio acerca del desarrollo de éste u otros algoritmos de compresión, posiblemente optimizados para plataformas de programación distribuida, afrontando directamente los problemas mencionados en el párrafo anterior. 5.- Metodología En esta investigación se aplicará una metodología experimental, descrito este tipo según como aquél donde el investigador dispone de la posibilidad de examinar el comportamiento de una variable cada vez que éste produce cambios voluntarios en otra, que supuestamente se encuentra asociada a la primera (Colaboradores de Wikipedia, 2008). Normalmente se manipula la variable independiente (la causa probable) y se registran los cambios observados en la variable dependiente (los efectos). Este tipo de investigación se puede catalogar como típicamente inductiva y permite hacer correlaciones y gráficos que relacionan las dos variables. Además, es una evaluación de tipo cuantitativa, ya que los resultados experimentales serán calificados y jerarquizados de acuerdo a su valor para su comparación y análisis. 6.- Estudio de factibilidad La factibilidad del proyecto se hace clara al partir de sus tres vertientes: la operativa, determinada por la disponibilidad de todos los recursos necesarios para llevar adelante el proyecto, está cubierta al notar que todos ellos, listados a continuación, se encuentran disponibles para su aprovechamiento. •
10 estaciones de trabajo con procesador Core 2 Duo, 2.4 GHz de velocidad, 1GB de memoria RAM, 160GB de disco duro.
9
•
2 servidores con procesador Xeon Quad Core, 2GHz de velocidad y 3 discos duros de 74GB.
•
1 Resma de papel para la impresión y análisis de resultados experimentales.
•
4 Lápices.
•
2 Borradores.
•
Conexión a internet personal y proporcionada por la Universidad del Zulia. La factibilidad técnica, relacionada con los conocimientos, habilidades y experiencia
para hacer que el proyecto sea exitoso, viene dada por los estudios y prácticas realizadas a lo largo de 9 semestres estudiados en la licenciatura en Computación de la Universidad del Zulia, además de los siguientes recursos bibliográficos: •
Libros del tema a estudiar encontrados en las bibliotecas gratuitas de la Universidad del Zulia.
•
Libros, manuales y guías aportadas por el tutor y colaboradores voluntarios de la investigación.
•
Libros, manuales, páginas web y guías virtuales en Internet. Por otra parte, la factibilidad económica deja de presentar oposición al tomar en
cuenta los siguientes aspectos: •
Se trabajará exclusivamente con herramientas bajo licencias de software libre (si costo)
•
El hardware necesario para las pruebas fundamentales del proyecto de investigación se encuentra disponible en la Facultad Experimental de Ciencias de la Universidad del Zulia.
•
La Universidad provee de la misma manera acceso libre de costo para investigaciones en Internet
•
Se cuenta con algunos recursos económicos de aporte propio para asegurar la disposición de nueva literatura.
10 7.- Resultados que se esperan lograr Con el diseño y configuración experimental del racimo de computadoras y el algoritmo a implementar se espera demostrar la factibilidad de este enfoque y su superioridad en cuanto a tiempo de ejecución y finalización se refiere, siempre tomando en cuenta los recursos extra que se hacen necesarios para llevar a cabo el despliegue de esta técnica distribuida. 8.- Cronograma de actividades A continuación se muestran las fechas tentativas de las actividades a realizar para lograr los objetivos propuestos de manera satisfactoria. •
Revisión de literatura: del 01-07-2008 al 29-09-2008.
•
Diseño del ambiente de programación e implementación del algoritmo: del 29-092008 al 10-11-2008.
•
Recolección de datos muestrales: del 10-11-2008 al 01-12-2008.
•
Análisis de datos y documentación: del 01-12-2008 al 15-01-2008.
11 Índice de Referencias Bibliográficas Colaboradores de Wikipedia. Wikipedia, La enciclopedia libre. (Página consultada el 15 de mayo de 2008). Dirección URL: http://es.wikipedia.org Real Academia Española. Diccionario de la RAE. (Página consultada el 15 de mayo de 2008). Dirección URL: http://www.rae.es Rodríguez Ávila, Denis Segundo. “ALGORITMO DE COMPRESIÓN PROBABILÍSTICO BASADO EN LA TEORÍA DE LA INFORMACIÓN”. Trabajo Especial de Grado. Universidad del Zulia. Facultad Experimental de Ciencias. División de Programas Especiales. Licenciatura en Computación. Maracaibo. Venezuela. 2006.