Skip to main content

Flexible scheduling of or-parallelism in Aurora: The Bristol scheduler

  • Submitted Presentations
  • Conference paper
  • First Online:
PARLE '91 Parallel Architectures and Languages Europe (PARLE 1991)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 506))

Abstract

Aurora is a prototype or-parallel implementation of the full Prolog language for shared memory multiprocessors, based on the SRI model of execution. It consists of a Prolog engine based on SICStus Prolog and several alternative schedulers. The task of the schedulers is to share the work available in the Prolog search tree

This paper describes the Bristol scheduler. Its distinguishing feature is that work is shared at the bottom of partially explored branches (“dispatching on bottom-most”). This can be contrasted with the earlier schedulers, which use a “dispatching on topmost” strategy. We argue that dispatching on bottom-most can lead to good performance, by reducing the overheads of scheduling.

Our approach has been to find the simplest scheduler design which could achieve performance competitive with earlier more complex schedulers. This design gives us a flexibility in deciding strategies for sharing work and allows us to examine ways of improving the performance on both non-speculative and speculative work. We note that in speculative regions the priority of some work is higher than others. We have investigated strategies which help workers to avoid low priority work.

We present the basic design of the Bristol scheduler, discussing the data structures and the main algorithms. We also present performance results for the new scheduler using a number of benchmark programs and large applications. We show that the performance of the Bristol scheduler compares favourably with other schedulers. Our work also shows that special treatment of speculative work leads to improved performance.

On leave from (and present address) SZKI, IQSOFT, Donáti u. 35–45, Budapest, Hungary

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Khayri Ali. Or-parallel execution of Prolog on BC-Machine. SICS Research Report, Swedish Institute of Computer Science, 1987.

    Google Scholar 

  2. Khayri A. M. Ali and Roland Karlsson. The Muse or-parallel Prolog model and its performance. In Proceedings of the North American Conference on Logic Programming, MIT Press, October 1990.

    Google Scholar 

  3. Per Brand. Wavefront scheduling. 1988. Internal Report, Gigalips Project.

    Google Scholar 

  4. 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 

  5. 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 

  6. Bogumił Hausman. Pruning and Speculative Work in OR-Parallel PROLOG. PhD thesis, The Royal Institute of Technology, Stockholm, 1990.

    Google Scholar 

  7. Feliks Kluźniak. Developing Applications for Aurora. Technical Report TR-90-17, University of Bristol, Computer Science Department, August 1990.

    Google Scholar 

  8. 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 

  9. V. Santos Costa, D. H. D. Warren, and R. Yang. The Andorra-I Engine: A parallel implementation of the Basic Andorra model. In Logic Programming: Proceedings of the 8th International Conference, MIT Press, 1991.

    Google Scholar 

  10. Raed Sindaha. Scheduling speculative work in the Aurora or-parallel Prolog system. March 1990. Internal Report, Gigalips Project, University of Bristol.

    Google Scholar 

  11. 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 

  12. Péter Szeredi, Mats Carlsson, and Rong Yang. Interfacing engines and schedulers in or-parallel prolog systems. In PARLE91: Conference on Parallel Architectures and Languages Europe, Springer Verlag, June 1991.

    Google Scholar 

  13. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Emile H. L. Aarts Jan van Leeuwen Martin Rem

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag

About this paper

Cite this paper

Beaumont, A., Raman, M., Szeredi, P., Warren, D.H.D. (1991). Flexible scheduling of or-parallelism in Aurora: The Bristol scheduler. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds) PARLE '91 Parallel Architectures and Languages Europe. PARLE 1991. Lecture Notes in Computer Science, vol 506. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54152-7_77

Download citation

  • DOI: https://doi.org/10.1007/3-540-54152-7_77

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54152-3

  • Online ISBN: 978-3-540-47472-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics