Interfacing engines and schedulers in Or-Parallel Prolog systems
Parallel Prolog systems consist, at least conceptually, of two components: an engine and a scheduler. This paper addresses the problem of defining a clean interface between these components. Such an interface has been designed for Aurora, a prototype or-parallel implementation of the full Prolog language for shared memory multiprocessors.
The practical purpose of the interface is to enable different engine and scheduler implementations to be used interchangeably. The development of the interface has, however, contributed in great extent to the clarification of issues in exploiting or-parallelism in Prolog. We believe that these issues are relevant to a wider circle of research in the area of or-parallel implementations of logic programming.
We believe that the concept of an engine-scheduler interface is applicable to a wider range of parallel Prolog implementations. Indeed, the present interface has been used in the Andorra-I system, which supports both and- and or-parallelism.
KeywordsOr-Parallel Execution Multiprocessors Implementation Techniques Scheduling
Unable to display preview. Download preview PDF.
- Khayri A. M. Ali and Roland Karlsson. The Muse approach to or-parallel Prolog. International Journal of Parallel Programming, 19(2):129–162, April 1990.Google Scholar
- Anthony Beaumont, S. Muthu Raman, Vítor Santos Costa, Péter Szeredi, David H. D. Warren, and Rong Yang. Andorra-I: An implementation of the Basic Andorra Model. Technical Report TR-90-21, University of Bristol, Computer Science Department, September 1990. Presented at the Workshop on Parallel Implementation of Languages for Symbolic Computation, July 1990, University of Oregon.Google Scholar
- Anthony Beaumont, S. Muthu Raman, and Péter Szeredi. Flexible scheduling or-parallelism in Aurora: the Bristol scheduler. In PARLE 91, Conference on Parallel Architectures and Languages Europe. Springer-Verlag, June 1991.Google Scholar
- BIM. BIM_Prolog release 2.4. 3078 Everberg, Belgium, March 1989.Google Scholar
- Per Brand. Wavefront scheduling. Internal Report, Gigalips Project, 1988.Google Scholar
- Ralph Butler, Terry Disz, Ewing Lusk, Robert Olson, Ross Overbeek, and Rick Stevens. Scheduling OR-parallelism: an Argonne perspective. In Proceedings of the Fifth International Conference on Logic Programming, pages 1590–1605. MIT Press, August 1988.Google Scholar
- Alan Calderwood. Aurora—description of scheduler interfaces. Internal Report, Gigalips Project, January 1988.Google Scholar
- Alan Calderwood and Péter Szeredi. Scheduling or-parallelism in Aurora—the Manchester scheduler. In Proceedings of the Sixth International Conference on Logic Programming, pages 419–435. MIT Press, June 1989.Google Scholar
- Mats Carlsson and Péter Szeredi. The Aurora abstract machine and its emulator. SICS Research Report R90005, Swedish Institute of Computer Science, 1990.Google Scholar
- Bogumił Hausman. Pruning and Speculative Work in OR-Parallel PROLOG. PhD thesis, The Royal Institute of Technology, Stockholm, 1990.Google Scholar
- Ewing Lusk, David H. D. Warren, Seif Haridi, et al. The Aurora or-parallel Prolog system. New Generation Computing, 7(2,3):243–271, 1990.Google Scholar
- Vítor Santos Costa, David H. D. Warren, and Rong Yang. Andorra-I: A parallel Prolog system that transparently exploits both and-and or-parallelism. In Proceedings of the Third ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM Press, April 1991.Google Scholar
- Raed Sindaha. Scheduling speculative work in the Aurora or-parallel Prolog system. Internal Report, Gigalips Project, March 1990.Google Scholar
- Péter Szeredi. Performance analysis of the Aurora or-parallel Prolog system. In Proceedings of the North American Conference on Logic Programming, pages 713–732. MIT Press, October 1989.Google Scholar
- Péter Szeredi and Mats Carlsson. The engine-scheduler interface in the Aurora or-parallel Prolog system. Technical Report TR-90-09, University of Bristol, Computer Science Department, April 1990.Google Scholar
- David H. D. Warren. The SRI model for or-parallel execution of Prolog—abstract design and implementation issues. In Proceedings of the 1987 Symposium on Logic Programming, pages 92–102, 1987.Google Scholar
- Patrick Weemeeuw. Memory compaction for shared memory multiprocessors, design and specification. In Proceedings of the North American Conference on Logic Programming. MIT Press, October 1990.Google Scholar