Abstract
Parallel execution models for Prolog have generally focused on either AND or OR parallelism. In both cases the largest speedups come from recursive computations similar to procedural language loops. Parallel models to date, however, have neither treated this loop parallelism by a common implementation nor provided speedups comparable to automatic parallelizers for procedural languages. In this paper we present a framework for the use of loop transformations on Prolog programs. We show by critical path timing of several benchmarks that our transformations give a significant improvement over existing parallelization methods.