Conclusiones. Particionado Consciente de los Datos



Documentos relacionados
AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina Alcobendas, Madrid.

CAPITULO 1 INTRODUCCIÓN. Puesta en Evidencia de un circulo virtuoso creado por los SRI entre los Mercados Financieros y las Empresas

Capitulo V Administración de memoria

Eduardo Kido 26-Mayo-2004 ANÁLISIS DE DATOS

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Capítulo 1. Introducción

Operativa en Acciones: Introducción a la Bolsa

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

RIESGO Y RENTABILIDAD DE LA EMPRESA (Riesgo y Rendimiento) Qué es lo que determina el rendimiento requerido de una inversión?

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

4 Teoría de diseño de Experimentos

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

ESQUEMAS DE SISTEMAS VOIP CON ALTA DISPONIBILIDAD Y ALTO RENDIMIENTO

Práctica 5. Curso

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

5.1. Organizar los roles

4. METODOLOGÍA. 4.1 Materiales Equipo

Lección 24: Lenguaje algebraico y sustituciones

TEMA 3: EN QUÉ CONSISTE?

POR QUÉ EL VALOR PRESENTE NETO CONDUCE A MEJORES DECISIONES DE INVERSIÓN QUE OTROS CRITERIOS? ( Brealey & Myers )

MARCO TEÓRICO Introducción

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R

La composición de una imagen, reglas

INGENIERÍA EN ORGANIZACIÓN INDUSTRIAL (SEMIPRESENCIAL)

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

Cierre sus cuentas con seguridad

FUNDAMENTOS TEÓRICOS BÁSICOS EN LA SONORIZACION PROFESIONAL.

por Miguel Crespo Celda

ABB Spain optimiza la gestión de sus facturas con PGN

Capítulo 6: Conclusiones

Economía de la Empresa I

CUENTOS é HISTORIAS NARRACIÓN DE

Análisis y gestión de riesgo

PARA COMERCIANTES Y AUTÓNOMOS. INFORMACIÓN SOBRE TARJETAS DE CRÉDITO.

Bioética y toma de decisiones en políticas públicas

Deberemos escoger de nuestro equipo humano un responsable de la implementación (si no queremos hacerlo personalmente).

TÉCNICAS DE ESTUDIO EN EL TERCER CICLO DE EDUCACIÓN PRIMARIA

MATERIAL 2 EXCEL 2007

Temas de electricidad II

32 - CÓMO PROGRAM A R AC T I V I D A D E S E N

Además se recomienda su uso como herramienta de trabajo dentro de las actividades habituales de gestión.

NUEVAS SOLUCIONES y CAMBIOS EN LA GESTION DEL NEGOCIO. JOSE LUIS LENCE Socio Director de Gesfarm Consultoria Farmacias

ESCUELA SECUNDARIA TÉCNICA 113

Módulo II - PowerPoint

Centro de Capacitación en Informática

MÉTODO DEL CAMBIO DE BASE PARA CÁLCULO MANUAL DE SUBREDES CON IP V4.0

6. Gestión de proyectos

CAPÍTULO 10 Aplicaciones de la Derivada a Funciones Económicas

Introducción Cómo empezar a monetizar mi blog? Porqué son tan interesantes los ingresos por sistemas de afiliados?...

Antoni Miró. Experiencia previa y formación

LA ESTRATEGIA NACIONAL DE BOSQUES Y CAMBIO CLIMÁTICO

ISO 17799: La gestión de la seguridad de la información

Unidad VI: Supervisión y Revisión del proyecto

Puedo dejar de pagar la cuota del mes en que me jubile y el anterior?

Dpto. Ingeniería Agrícola y Forestal. Esc. Tec. Sup. Ingenierías Agrarias Universidad de Valladolid Avda. de Madrid 44; Palencia

Movimiento a través de una. José San Martín

Análisis del Informe de la Unión de Consumidores de Málaga: El sistema tarifario del ciclo del agua en la ciudad de Málaga

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

4. EVALUACIÓN DEL PROGRAMA DE CAPACITACIÓN

GUÍA PARA LA FORMULACIÓN PROYECTOS

Manual de OpenOffice Impress

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

PROBLEMA BÁSICO Según esto se concluye que, en no pocos casos, el estudiante de nuestro medio llega

CAPITULO VI CONCLUSIONES. Al haber analizado los conceptos presentados en este trabajo, pudimos llegar a la

Información importante para el proveedor de Servicios de Apoyo en el Hogar (IHSS)

Aproximación local. Plano tangente. Derivadas parciales.

Guía del Usuario ANEXOS

CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION

Cómo funciona un control proporcional derivativo (PD)?

Servicios Administrados al Cliente

Sistemas de Calidad Empresarial

Diseño de Imagen y de Marcas Trabajo Práctico Nº1

Tema 5: Sistemas Monetarios Internacionales

Una investigación australiana reveló que posiblemente la disminución

Unidad II: Administración de Procesos y del procesador

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

Adaptación del producto

Fórmulas y funciones

Líneas de espera. Introducción.

Las razones financieras ayudan a determinar las relaciones existentes entre diferentes rubros de los estados financieros

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Página 1 de 7. Qué es Scratch?

Matrices Invertibles y Elementos de Álgebra Matricial

El reto de la Gestión Documental

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

JORNADA DE TRABAJO LIQUIDACION

PRODUCTIVIDAD. Contenido. 1. Introducción. 2. Importancia de la Productividad. 3. Que es productividad? 4. Como se mide la productividad?

Tutorial: Cuento Aristotélico

El proceso de edición digital en Artelope y CTCE

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

5. PRESUPUESTO (GASTOS)

Lección 9: Polinomios

Transcripción:

Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser consciente tanto de la jerarquía de memoria del computador, como del tipo, cantidad y características de los datos. En esta tesis entendemos ser consciente como que el algoritmo se adapte a las características del computador y de los datos con tal de poder explotar la localidad de éstos y/o reducir la comunicación de datos entre procesadores. Esto no es diferente a lo que intentan hacer y concluyen otros muchos trabajos, aunque sí es diferente la forma de conseguirlo. Nuestros algoritmos se adaptan, en tiempo de ejecución, a las características de los datos (duplicados, con sesgo, etc.) para impedir la pérdida de rendimiento del algoritmo. Particionado Consciente de los Datos Basamos la forma de explotar la jerarquía de memoria y reducir la comunicación, en la vieja y sencilla idea de divide y vencerás. Es decir, particionamos los datos a ordenar, para posteriormente ordenar en memoria cada una de las particiones con algún algoritmo de ordenación. Lo difícil de conseguir, es que este particionado sea rápido y obtenga el tipo de particiones que ayuden a ordenar de forma eficiente independientemente de las características de los datos y del computador. Para ello, también es importante adaptar la técnica de particionado a las características de los datos y del computador. Para adaptar el particionado a las características de los datos proponemos un particionado, Mutant Reverse Sorting, que consiste en analizar un conjunto de claves, que son una muestra de los datos a ordenar, y decidir, en tiempo de ejecución, qué estrategia de particionado y ordenación seguir. Elegimos entre dos estrategias de particionado según las características de los datos: 1. Distribución uniforme o quasi-uniforme: Clasificamos las claves en función de algunos de los bits más significativos de las claves (Reverse Sorting). 129

130 CAPÍTULO 6. CONCLUSIONES 2. Distribución sesgada o con muchos duplicados: Clasificamos las claves en base a comparaciones con un conjunto de claves de una muestra ordenada del conjunto a ordenar (Counting Split). Hasta el momento, en los trabajos que conocemos, se aplicaba siempre una misma técnica de particionado, independientemente de las características de los datos. Esto hace que el rendimiento de estos algoritmos dependa notablemente de las características de los datos. Sin embargo, utilizando Mutant Reverse Sorting antes de la ordenación de cada partición, nuestros algoritmos de ordenación se adaptan en tiempo de ejecución a las características de los datos y, además, explotan la jerarquía de memoria del procesador y reducen la comunicación a realizar. Por consiguiente, podemos decir que los algoritmos que proponemos (englobando particionado y ordenación) se adaptan dinámicamente a los datos y las características del computador. Muestra para Tomar una Decisión Para adaptar los algoritmos al computador y a las características de los datos, obtenemos una muestra de claves del conjunto de datos a ordenar y lo analizamos en tiempo de ejecución, mediante un proceso con coste poco significativo. El número de claves muestreadas necesarias para poder elegir la mejor estrategia de particionado y ordenación, y el coste que esto implica, es reducido en comparación al beneficio obtenido. Número de Particiones El número de particiones a realizar también se debe tener en cuenta ya que influye en el coste del particionado. Aquí hemos observado que el número de particiones a realizar no tiene porqué ser más grande que el número de entradas de TLB para conseguir que los algoritmos exploten la jerarquía de memoria del computador y reduzcan la comunicación entre procesadores. Por el contrario, si decidimos crear un número de particiones más grande, el número de fallos de TLB durante la creación de las particiones puede ser muy elevado, sea cual sea la estrategia de particionado. En el caso de la estrategia basada en comparaciones, si aumentamos el número de particiones esto también significa un aumento de coste algorítmico debido a la búsqueda dicotómica que se realiza para cada clave. Equilibrio de Carga Desde el punto de vista de un multiprocesador, el particionado es un poco más complicado ya que debemos ser conscientes de no obtener un gran desequilibrio de carga entre los procesadores. Pero según hemos visto en la tesis, obtener un equilibrio

de carga perfecto es decir, que cada procesador obtenga el mismo número de claves a ordenar después del particionado, es contraproducente debido al excesivo trabajo y comunicación extra que se tiene que realizar. En la tesis nos centramos en obtener un desequilibrio moderado como vía para obtener los algoritmos de ordenación más rápidos. 131 Reducción de Comunicación de Datos También hemos visto que reasignar/renombrar, en tiempo de ejecución, la numeración que los procesadores reciben en un modelo de paso de mensajes por parte de la librería, puede ayudar a reducir significativamente la comunicación entre los procesadores. Lo más importante de la ordenación de los datos es saber, con un coste adicional mínimo (un simple vector de renombrabiemto), cómo reconstruir el orden total de los datos. La reducción de la comunicación de datos que podamos obtener gracias a esto depende de las características de los datos. Radix sort Ahora nos centraremos en el algoritmo de ordenación que tomamos como base. Los algoritmos de ordenación que podemos elegir pueden estar basados o no en comparaciones. Ningún algoritmo de ordenación basado en comparaciones tiene complejidad lineal en el número de datos a ordenar. Es por ello que en esta tesis apostamos por Radix sort que no se basa en comparaciones y tiene una complejidad lineal en función del número de datos a ordenar. Radix sort, además, realiza una ordenación estable. Hemos visto que Radix sort es un algoritmo del cual se obtiene un buen rendimiento si el conjunto de datos a ordenar cabe en algún nivel de memoria cache. En caso contrario, y dependiendo de las características de los datos, algunos métodos de ordenación basado en comparaciones son más rápidos que Radix sort. Esto es debido a que Radix sort no fue pensado para explotar la jerarquía de memoria del computador. Sin embargo, combinando Radix sort con las técnicas de particionado propuestas en esta tesis nos hemos asegurado que Radix sort tenga un buen rendimiento cuando lo usamos. Así, elegimos el tamaño de particionado para que, eligiendo un tamaño de dígito adecuado para Radix sort, éste obtenga su mejor (el mejor de todos) rendimiento. El dígito no debe ser ni muy grande ni muy pequeño, en concreto, el tamaño de los dígitos debería hacer que los contadores que Radix sort necesita para la ordenación quepan en el primer nivel de memoria cache.

132 CAPÍTULO 6. CONCLUSIONES Influencia del Computador En cualquier caso, sea cual sea el algoritmo de ordenación que usemos se debe analizar previamente si el algoritmo en cuestión ya es capaz de explotar la jerarquía de memoria del procesador sobre el que se ordena; no siempre sale rentable realizar un particionado previo a la ordenación de los datos, aunque éste sea muy rápido. Por ejemplo, el prefetch hardware de los Power4 hace que la ordenación más rápida de conjuntos de datos de 32 bits 1, los cuales no caben en ningún nivel de memoria cache, sea con Radix sort. Para datos de 64 bits o en otros procesadores como el R10K, ya sea para 32 o 64 bits, el más rápido es el Quicksort (sin contar los algoritmos propuestos en esta tesis). También, si el computador en cuestión no tiene una buena red de interconexión entre procesadores de diferentes nodos, el rendimiento del algoritmo paralelo puede caer cuando se tiene mayor número de procesadores que los que caben en un nodo y se tienen que comunicar datos entre los procesadores, que es lo normal (por ejemplo, el computador basado en módulos p630). No es que sea un problema del algoritmo, sino de la red de interconexión porque esa comunicación, aunque la reduzcamos a lo mínimo, no se puede evitar. Resultados Finalmente, como conclusión final a todos los análisis, modelos y experimentos realizados en esta tesis, proponemos un algoritmo secuencial y otro paralelo que llamamos SKC-Radix sort y PSKC-Radix sort respectivamente. Estos algoritmos combinan Mutant Reverse Sorting con un Radix sort mejorado, que utiliza el tamaño óptimo de dígito. SKC-Radix sort y PSKC-Radix sort son los algoritmos de ordenación en memoria más rápidos y adaptables a las diferentes distribuciones de datos, de 32 y 64 bits; al menos para los computadores y algoritmos probados. Secuencial SKC-Radix sort se compara con Radix sort, Quicksort, Dutch National Flag (DNF) combinado con Quicksort y Radix sort con copia explícita (RadixCE [35]). SKC-Radix sort muestra el mejor comportamiento para todas las distribuciones y tipos de datos, 32 y 64 bits, en el SGI O2000 con procesadores R10K. En el caso del computador basado en p630 con procesadores Power4, SKC-Radix sort muestra el comportamiento más estable entre los datos de 32 y 64 bits. Para 64 bits es el algoritmo más rápido. 1 Conjunto de datos con distribución uniforme o no muy sesgada

Para 32 bits, Radix sort es ligeramente más rápido que SKC-Radix sort 2, lo cual tiene sentido ya que los experimentos y modelos realizados en esta tesis indican que Radix sort es capaz de explotar la localidad de los datos para ese tipo de datos (32 bits) en el procesador Power4. En ese caso, no tiene sentido particionar ya que es un trabajo extra que no aporta beneficio alguno. En cualquier caso, SKC-Radix sort demuestra adaptarse al tipo, la distribución y la cantidad de datos a ordenar, explotando la jerarquía de memoria del procesador mejor que el resto de algoritmos. La mejora de rendimiento es más significativa cuanto más sesgo o duplicados hay en los datos, teniendo mejoras de más de un 25% con respecto al segundo más rápido (incluido Radix sort para un Power4 y claves de 32 bits). 133 Paralelo El algoritmo paralelo PSKC-Radix sort se ha comparado con Load Balanced Radix sort [40]. Load Balanced Radix sort era el algoritmo más rápido de ordenación en memoria y en paralelo tanto para 32 y 64 bits, alrededor de un 30% a un 100% más eficiente que los trabajos en ordenación previamente más rápidos [17]. PSKC-Radix sort es capaz de ordenar hasta 4 veces más datos que Load Balanced Radix sort en la misma cantidad de tiempo. Las principales razones son: Reducción del número de pasos de comunicación de datos de clave y puntero a uno sólo. Reducción de la cantidad de datos comunicados. Explotación de la jerarquía de memoria tanto en el particionado como en la ordenación local, donde se usa SKC-Radix sort. PSKC-Radix sort alcanza un speedup de algo más de 4 con 16 procesadores, en el computador basado en p630, y de 16 en la ordenación con 32 procesadores en el SGI O2000. El bajo speedup en el computador basado en p630 es debido al bajo ancho de banda que hay entre los procesadores una vez que pasamos de 4 procesadores a 8, o a 16. De ahí que se concluya también que el SGI O2000 permite una mejor escalabilidad de los algoritmos paralelos, que necesitan de un gran volumen de comunicación de datos. Con todo esto, hemos cumplido nuestros objetivos marcados. Nuestros algoritmos se adaptan dinámicamente al tipo, cantidad y características de los datos, teniendo en cuenta la jerarquía de memoria del computador. De esta forma se convierten en los algoritmos más rápidos para ordenar conjuntos de datos de 32 y 64 bits en memoria. 2 Distribución de datos uniforme o poco sesgada.

134 CAPÍTULO 6. CONCLUSIONES Líneas de Trabajo Actual y Futuro En muchas ocasiones, las bases de datos actuales necesitan ordenar datos de tamaño variable. En esta tesis, sin embargo, nos hemos centrado en enteros de hasta 64 bits sin contemplar el caso de datos variables, aunque nuestras propuestas pueden ser útiles como parte de la ordenación de ese tipo de datos. Actualmente estamos trabajando en algoritmos de ordenación secuencial de strings (datos de tipo texto y de tamaño variable). Los algoritmos que estamos desarrollando también se basan en la idea de particionar y posteriormente ordenar. En estos algoritmos aplicamos técnicas de pattern matching para particionar eficientemente el conjunto de strings a ordenar. Así, por una parte se explota mejor la localidad de los datos y por otra, se ahorra trabajo en la ordenación de strings si hay duplicados o sesgo en los datos. Además, los buenos resultados obtenidos con Mutant Reverse Sorting para el particionado de enteros nos animan a buscar un tipo de particionado, basado en la misma idea, para poder explotar mejor la arquitectura del computador y las características de los strings durante el particionado. Más adelante queremos adaptar estos algoritmos de ordenación secuencial de strings a una implementación paralela. Parte de este trabajo ya lo hemos implementado y evaluado dentro de la base de datos de IBM, DB2, mejorando los actuales algoritmos de ordenación existentes dentro de la base de datos. Otro aspecto que analizaremos más detalladamente es el comportamiento de los algoritmos presentados en esta tesis en computadores con un número muy elevado de procesadores. Finalmente, tenemos pensado empezar a investigar en el desarrollo de algún tipo de hardware general o específico con tal de acelerar la ordenación o búsqueda de datos. El chip de reconocimiento de patrones de INTERAGON [36] es un ejemplo de este tipo de investigación. Nuestra experiencia en algoritmos de ordenación nos puede ayudar a obtener soluciones hardware para mejorar los algoritmos existentes.