Wavefront Scheduling In Logflow

Recently inrensive research h,as been started on investigaring the possibility of implementing logic programming languages on distributed memiry computers [KaWi92]. The LOGFLOW project belongs to this class of projects and is unique in the sense that is based on a data driven execution model which is highly optimised towards the execution on neighborhoodo~ented~~geneous processor spaces. The main contribution of the current paper is the description of a dynamic scheduling scheme thal is able to adaptively control the distribution of Prolog work in the processor space based on the a c t d workbad of processors. 1: Introduction Parallel implementation of Prolog on different kinds of parallel computers has intensively been investigated since the mid eighties. The variety of parallel computers entailed a large number of proposals and experimental work on parallel Prolog, but most of these research efforts have been concentrated on implementing Prolog or a F’rolog variant on shared memory multiprocessors [GuJS], [HeCir90], [AlKaW], [CoWY91], [Dove%]. Recently intensive research has been started on investigating the possibility of implementing logic programming languages on distributed memory computers as well [KaWi92]. Many research projects aimed at parallelizing logic programs based on a dataflow execution model, but except for [BaCR92], the others consideired real dataflow machines as target architecture for a possible implementation @aAm84], [ItO8s], [Hali86], [BiLe87], [SiswSS]. The LOGFLOW project is also based on a data driven execution model but this model is highly optimised towards the execution on neighborhood oriented homogeneous processor spaces. Prolog programs are compiled into the Dataflow Search Graph and the computahion is based on this graph. An early version of the underlying abstract parallel execution model was described in [KacsW]. A revised version and its interpreted implementatioin on distributed memory multicomputers like multi-Transputers has been shown in [Kacs9l]. Based on the revised execution model a distributed data driven Prolog abstract machine, called the 3DPAh4 was designed and described in detail in mcs921. The implementation of the 3DPAM in a two-layer multi-transputer based machine, called the LOGFLOW machine is shown in Dcs931. In the present paper we give a detailed explanation of how to schedule parallel activities in the LOGFLOW machine based on a dynamic mapping and scheduling scheme that is able to adaptively control the distribution of Prolog work in the processor space based on the actual workload of processors. The scheduling of processes in parallel Prolog systems has been thoroughly investigated for shared memory systems [Herm87], [But188], [AlKa91], [Beau911 and recently for distributed memory systems, mainly for multi-transputers [Bria92] . The work described in [Can11921 has many similarities with our scheduling approach. 2: LOGFLOW The objective of the LOGFLour project is to implement CPA-Prolog (a slight modification of Prolog) on tightly-coupled distributed memory parallel computers where the communication cost between neighboring processors is significantly less than between remote processors. In CPA-Prolog everything is parallel by default, and therefore database oriented sideeffect * The current paper is part of the project titled “Highly Parallel Implementation of :Prolog on Distributed Memory Computers” supported by the National Scientific Research Foundation (Hungary) under the Grant Number T4045. 0-8186-5370-1/94 $3.00