The Dynamic Dependent And-parallel Scheme (DDAS) is a parallel execution scheme for Prolog that is designed to exploit independent and dependent and-parallelism in full Prolog programs. In this paper, an overview of some techniques for implementing DDAS is presented. The main purpose of these techniques is to provide reasonably efficient methods for implementing the idea of the dependent status and the dynamic detection of the leftmost instance of a variable, along with the techniques needed for suspending and waking up of goals. DASWAM, an implementation of DDAS using the techniques presented in this paper, is based on modifying the Warren Abstract Machine (WAM) for parallel execution, and is designed to execute programs efficiently. A prototype DASWAM has been implemented, and results on running significant application programs presented in this paper suggest that it is possible to implement DASWAM efficiently, and that significant parallelism can be extracted.
Read full abstract