Sistema de identificación y explotación de paralelismo en programas lógico-funcionales

  1. Sáenz Pérez, Fernando
Supervised by:
  1. José Jaime Ruz Ortiz Director

Defence university: Universidad Complutense de Madrid

Year of defence: 1996

Committee:
  1. Mario Rodríguez Artalejo Chair
  2. Alfredo Bautista Paloma Secretary
  3. Manuel de Hermenegildo Salinas Committee member
  4. Ana Ripoll Aracil Committee member
  5. José María Troya Linero Committee member
Department:
  1. Arquitectura de Computadores y Automática

Type: Thesis

Abstract

Los lenguajes declarativos en general y los lógico-funcionales en particular poseen una capacidad expresiva para resolver problemas de índole simbólico mayor que los lenguajes imperativos. Sin embargo, esta mayor capacidad expresiva requiere mayor tiempo de cómputo y uso de memoria. El objetivo de esta tesis es el aumento de la eficiencia de un lenguaje lógico- funcional mediante el desarrollo de un sistema de identificación y explotación del paralelismo implícito en los programas. En primer lugar se desarrolla un procedimiento para la identificación local de paralelismo en programas secuenciales con el que se generan programas paralelos. Se desarrollan varias estrategias de icación y de incorporación de granularidad que se estudian y comparan. En egundo lugar se rolla un análisis de independencia de los programas p ara obtener información global de las reglas en el programa para la simplificación de las reglas paralelas. Para ello se liza la interpretación abstracta y se presentan y comparan tres niveles de análisis. En rcer lugar se diseña una máquina abstracta paralela de memoria compartida basada en pilas para la explotación del paralelismo identificado. Esta máquina retiene las limizaciones de las máquinas secuenciales, fundamentalmente durante el cómputo hacia atrás en la desasignación de memoria. Finalmente, se realiza una implementación de la máquina abstracta paralela sobre un multiprocesador de memoria compartida simulado en vhdl, realizándose su validación funcional y tomando medidas de rendimiento. Se plantean diferentes alternativas de diseño para el bus y la memoria cache, que se comparan a partir de las medidas obtenidas.