This work focus on the APPELO project supported by CNPq (Protem-III/CC). Our APPELO project tackled three main aspects of parallel logic programming: the parallel runtime environment, compile-time analysis tools and post-run analysis tools. Regarding the parallel runtime environment we performed a thorough performance analysis of existing parallel logic programming systems by using a simulator of a distributed-shared memory (DSM) architecture. Our performance analysis confirms that our proposed runtime environment, DAOS - Distributing And/Or in Scalable machines, that combines DSM techniques with message passing will certainly obtain good performance on a distributed environment. We also proposed and analysed several scheduling strategies, Tamagoshi, Penelope and DSLP, necessary for the efficient distribution of work among the processors in our system. We also designed and developed a compile-time analysis tool, GRANLOG, that is responsible for annotating Prolog programs with useful information such as grain sizes of goals and clauses to guide scheduling decisions. In order to be able to identify bottlenecks and opportunities for optimising our parallel runtime environment, specially the schedulers, we designed and developed VisAll, a tool to visualise the parallel execution of Prolog programs. We also defined a benchmark set composed of Prolog programs taken from academia and from industries. We believe that our integrated system can run logic programs efficiently on parallel platforms offering to the user a very low cost software development environment.
Keywords: logic programming, parallelism, and-or
parallelism, static analysis, scheduling, visualisation.