next up previous
Next: Mejora de las técnicas Up: Actividades realizadas Previous: Ampliación del lenguaje fuente:

Plataforma de ejecución paralela:

La robustez de la plataforma básica (&-Prolog) ha sido mejorada en numerosos aspectos, y se le han añadido caracterısticas avanzadas (como variables con atributos, sobre las cuales se ha implementado el soporte para la programación con restricciones y la capacidad de realizar computaciones distribuidas de forma transparente al programador [HCC95, CH96]) que forman el núcleo del nuevo lenguaje Ciao-Prolog [HtCg94, HBGP95] mencionado anteriormente, y que se cree ofrecerá un marco muy interesante para el desarrollo de aplicaciones complejas paralelas y distribuidas.

Motivado por la necesidad de aprovechar mejor los recursos disponibles en una máquina, se han estudiado, en colaboración con la Universidad de Bristol, los efectos en la ejecución con paralelismo conjuntivo de diversos esquemas de manejo de memoria y propuesto mejoras a los mismos [SH94]. También se ha finalizado un estudio de la cantidad y tipos de paralelismo explotables en programas Prolog [SH96]. En colaboración con New Mexico State University se han desarrollado técnicas para la combinación de diversos tipos de paralelismo [GHPSC94], y se han propuesto, implementado y evaluado varias técnicas de optimización de bajo nivel que mejoran la velocidad y el consumo de memoria en sistemas que explotan el paralelismo conjuntivo [PGH95, PGTtex2html_wrap138896]. Dichas técnicas incluyen el control de la suspensión de objetivos (necesario para el paralelismo conjuntivo independiente) y el ``corte'' de Prolog (necesario para soportar una semántica Prolog completa). Los experimentos llevados a cabo mostraron claramente las ventajas de las optimizaciones mencionadas. En la misma lınea, se han diseñado, implementado y evaluado métodos para reducir la sobrecarga en tiempo y memoria del arranque de tareas paralelas, mediante sencillas reescrituras de programas y el uso de maquinaria simple de bajo nivel [HC96], similares a las usadas en las técnicas de paralelismo de datos.

La aplicación de las optimizaciones y transformaciones propuestas necesita de cierta información (principalmente, determinismo y ausencia de fallo) en cuya obtención se ha trabajado también en el proyecto, como se menciona más adelante. Todo ello tiene como objetivos el incrementar la velocidad de ejecución paralela (sin detrimento de que pueda ser aplicado a implementaciones secuenciales) y proporcionar una mejor capacidad para ejecutar programas de tamaño considerable, donde el reducir gasto de memoria es esencial. Los mecanismos de bajo nivel que se han añadido soportan el paralelismo de grano fino y el paralelismo independiente no estricto con la menor sobrecarga posible. Por ultimo, es de destacar que las técnicas desarrolladas pueden aplicarse también a otros sistemas.


next up previous
Next: Mejora de las técnicas Up: Actividades realizadas Previous: Ampliación del lenguaje fuente:

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