ACE: And/Or-Parallel Implementation of Prolog

 This project aims to build a high performance parallel implementation of Prolog on multiprocessor architectures based on the the ACE model. The ACE model uses stack-copying and a novel memory mapping scheme to represent the multiple environment that exist at runtime. To date, a system has been built that runs on the Sequent Symmetry and the Sun Sparc Multiprocessor. The ACE system exploits or-parallelism, independent and-parallelism, dependent and-parallelism and their data-parallel forms. The system is extremely efficient (approximately 5% parallel overhead) and has shown excellent speed-ups on a variety of benchmarks (some as long as 35,000 lines, written by others). The ACE project has been funded by grants from the National Science Foundation. The most comprehensive document describing the ACE system can be found in Enrico Pontelli's 1997 Ph.D. Thesis. The project has been done in collaboration with Universidad Politecnica de Madrid and University of Porto.


There are numerous papers written on all aspects of the ACE system, ranging from implementation techniques, performance evaluation, execution vizualization, run-time optimization, to extensions. Click here to see a report (pdf) on the ACE Project. 

Execution Models

Handling Cuts/Side-Effects

Run-time Optimizations and Efficiency Issues




Compile-time Analysis