Distributed execution of logic programs on heterogeneous processors requires efficient task distribution and engine synchronization to exploit the potential for performance. This paper presents a task-driven scheduling technique to distribute tasks to engines effectively. It consists of a dynamic hierarchy of distributed scheduling components able to adapt to program characteristics and the platform configuration and to control the considerable communication costs while exploiting good degrees of parallelism. It also incorporates an abort & failure mechanism to reduce speculative work and keep engines as busy as possible. Several experimental results illustrate the performance of the model.
展开▼