14 MAIO / TERÇA FEIRA / 23:33
FCUP PT 
 EN
 
 
APRESENTAÇÃO
PESSOAS
ENSINO
INVESTIGAÇÃO
BIBLIOTECA
NOTÍCIAS
CONTACTOS

On Applying Or-Parallelism and Tabling to Logic Programs

Ricardo Rocha

Departamento de Ciência de Computadores & LIACC
Faculdade de Ciências, Universidade do Porto
Rua do Campo Alegre, 823 4150 Porto, Portugal

Novembro de 2001


Resumo

Uma das vantagens do Prolog, como linguagem de Programação Lógica, é possuir uma semântica que possibilita a exploração de paralelismo implícito. Esta característica permite reduzir o tempo de execução de um programa, sem que para isso sejam necessárias anotações adicionais do programador. Para aplicações complexas, que demoram várias horas, senão dias, a calcular uma solução, mesmo ganhos de velocidade modestos em execução paralela, podem traduzir-se em significantes ganhos de produtividade.

Apesar do poder, da flexibilidade e dos bons resultados que o Prolog tem demonstrado desde o aparecimento da WAM, um amplo esforço tem vindo a ser desenvolvido para aumentar o seu poder declarativo e expressivo. A estratégia de resolução SLD, na qual o Prolog se baseia, é limitadora do potencial inerente ao paradigma da Programação Lógica. Uma das mais bem sucedidas técnicas para solucionar a incapacidade da resolução SLD no que respeita a ciclos infinitos e computações redundantes é a Tabulação.

Com este trabalho pretende-se demonstrar que a exploração implícita de paralelismo-Ou em programas lógicos com tabulação pode ser tão eficaz como o é em programas lógicos comuns. Para tal, propõem-se novos modelos para integrar paralelismo-Ou com tabulação, desenvolve-se um novo sistema, o OPTYap, e avalia-se o seu desempenho. Tanto quanto é do nosso conhecimento, o OPTYap é o primeiro sistema a explorar paralelismo em programas lógicos com tabulação. O OPTYap foi desenvolvido tendo por base o sistema Yap, um dos mais rápidos sistemas de execução sequencial de Prolog. O seu modelo de execução é baseado na SLG-WAM, para tabulação, e em cópia de ambientes, para paralelismo-Ou.

Os resultados mostram que os mecanismos para execução paralela de programas lógicos podem generalizar-se para computações que usam tabulação, e que os sistemas daí resultantes obtêm igualmente bons desempenhos em máquinas paralelas de memória partilhada. Este trabalho reforça a convicção de que paralelismo e tabulação podem contribuir para expandir o leque de aplicações alvo da Programação Lógica.


FCUP 2024