next up previous
Next: Mejora de las técnicas Up: Actividades realizadas Previous: Plataforma de ejecución paralela:

Mejora de las técnicas de paralelización:

El compilador paralelizante del sistema &-Prolog [MH91, MH90] para independencia estricta [HR89] se mejoró para poder, por primera vez, descubrir paralelismo en una clase mucho más amplia de programas mediante el llamado paralelismo independiente no estricto [HR95], en el cual se pueden ejecutar simultáneamente varias tareas que, a priori, no son completamente independientes (por ejemplo, objetivos que tienen acceso a estructuras que comparten punteros pero que no compiten en los accesos). Esto se lleva a cabo mediante un análisis y transformación automática del programa que determina las condiciones de paralelismo no estricto en tiempo de compilación y codifica las condiciones en forma de expresiones evaluables en tiempo de ejecución [CH94]. Asimismo, se han perfeccionado las técnicas de paralelización con independencia estricta y se han obtenido importantes resultados teóricos nuevos con respecto a las propiedades de dicha independencia [HR95], en colaboración con la Universidad de Pisa.

Se ha mejorado el diseño de la arquitectura del compilador de tal manera que se pueden seleccionar diferentes dominios y algoritmos de análisis [BGCH93]. Esto ha permitido realizar un estudio exhaustivo de la eficiencia (tiempo de compilación) y rendimiento (aceleraciones resultantes) tanto de los analizadores, estudiando los diferentes dominios de análisis propuestos [BGH94b], como de los algoritmos de paralelización [BGH94a]. Dicho estudio, que se ha realizado con programas reales, sugiere que los tiempos de análisis y anotación son aceptables comparados con los tiempos habituales de compilación, y que la calidad del análisis permite obtener buenas aceleraciones, en algunos casos cercanos a las óptimas, y sin los posibles errores de una anotación manual.

Por otra parte, se ha abordado la paralelización de programas con restricciones, que no habıa sido estudiada con anterioridad. Se ha demostrado que la teorıa (y, por supuesto, las implementaciones) de paralelismo en lenguajes lógicos no son aplicables en este caso [GHM93]. Con el fin de conseguir la paralelización automática de este tipo de lenguajes se ha desarrollado una nueva teorıa de independencia en programación lógica con restricciones [GHM93, Gar94], que generaliza la de la programación lógica convencional. Derivadas de esta nueva noción de independencia se definieron condiciones de tiempo de ejecución para comprobarla de forma más eficiente que usando la propia definición. El compilador paralelizante para programas lógicos se modificó para que tuviese en cuenta esta nueva noción de independencia y las condiciones asociadas, resultando en el primer paralelizador para programas de restricciones [GBH96].


next up previous
Next: Mejora de las técnicas Up: Actividades realizadas Previous: Plataforma de ejecución paralela:

<webmaster@clip.dia.fi.upm.es> Last Modified: Fri May 9 17:59:16 MET DST 1997