Next: Especialización de programas:
Up: Actividades realizadas
Previous: Mejora de las técnicas
Se han desarrollado también, en colaboración
con la Universidad de Arizona, técnicas de análisis global que
permiten inferir nuevos tipos de información. Esta nueva
información se utiliza en la paralelización, aunque permite
mejorar también la calidad de la ejecución de programas
secuenciales, ya sea en términos de tiempo de ejecución o de
gasto de memoria. Se han desarrollado análisis de determinismo, de
no-fallo [DGH96] y de coste [LHD96].
El análisis de no-fallo determina predicados que siempre dan
alguna solución, mientras que el de coste infiere cotas superiores
e inferiores para el tiempo de ejecución de las tareas. Ambos son
bloques básicos en el control de granularidad de tareas y para
evitar el paralelismo especulativo. El análisis de determinismo
se centra en averiguar qué predicados de un programa (y bajo
qué condiciones) son llamados de manera completamente
determinista, lo que permite ahorrar puntos de elección
para ellos en el caso de un lenguaje con reglas de selección
fijas, o eliminar suspensiones innecesarias en el caso de
lenguajes con una regla de evaluación dinámica, y optimizar la
ejecución de los programas paralelos. Esta información se
usó también para incluir en el sistema la posibilidad de
compilar programas escritos en lenguajes concurrentes ``estilo
Andorra'' [Bue94, BDGH94]. Dichos lenguajes dan
primacıa a la ejecución de predicados deterministas, y
permiten reducir de forma automática la cantidad de búsqueda
realizada por el programa en muchos casos. El uso extensivo del
análisis de determinismo permitió reducir las comprobaciones
en tiempo de ejecución, de forma que el resultado, compilado a
Prolog con primitivas de concurrencia, alcanza velocidades comparables
a las obtenidas con sistemas hechos con maquinaria de bajo nivel
diseñada ad-hoc, siendo más portable y, al ser Prolog el
lenguaje objetivo, reanalizable.
<webmaster@clip.dia.fi.upm.es>
Last Modified: Fri May 9 17:59:16 MET DST 1997