The University of Southampton
University of Southampton Institutional Repository

Compile-time analysis of concurrent logic programs for microprocessors

Compile-time analysis of concurrent logic programs for microprocessors
Compile-time analysis of concurrent logic programs for microprocessors

An analogue of strictness analysis is proposed for concurrent logic programming called schedule analysis. Schedule analysis deduces at compile-time a partial schedule for the processes of a program by partitioning the atoms of each clause into threads. Threads are totally ordered sets of atoms whose relative ordering is determined by a scheduler. Threads reduce scheduler activity and permit a wealth of traditional Prolog optimisations to be applied to the concurrent logic program. A framework for schedule analysis is proposed, formulated in terms of the operational semantics for a program, which builds from the notion of a data-dependence to define a procedure for creating threads. A safety result is presented stating the conditions under which the work of the scheduler can be reduced from ordering processes to ordering threads. A polynomial-time compilation scheme is outlined which takes as input information derived from existing forms of compile-time analysis and produces as output the threads of a clause. Schedule analysis has been integrated into a compiler and preliminary results suggest that it can play a central r^ole in compilation. The execution of a concurrent logic program can break down into the evaluation of fine-grained processes. This can present a mismatch of granularity between the program and the multiprocessor which degrades performance. One approach for dealing with processes which are to fine-grained is to coalesce them into larger grains. A compile-time technique for coalescing fine-grained processes is proposed, called granularity analysis, which derives complexity functions for processes at compile-time. The complexity functions are the solutions of difference equations on argument sizes, formulated as functions of the size of the data. By comparing the complexities of the computation and the communication, coalescing decisions can be made at compile-time. The granularity analysis approach is refined by combining it with a variant of schedule analysis in a single unified technique called serialisation analysis. Serialisation analysis both partitions a program into grains for parallel evaluation and orders the grains for sequential evaluation. Serialisation analysis is based on threads to reduce scheduler activity, incurs no extra run-time overhead, and is straightforward to implement.

University of Southampton
King, Andrew Malcolm
King, Andrew Malcolm

King, Andrew Malcolm (1992) Compile-time analysis of concurrent logic programs for microprocessors. University of Southampton, Doctoral Thesis.

Record type: Thesis (Doctoral)

Abstract

An analogue of strictness analysis is proposed for concurrent logic programming called schedule analysis. Schedule analysis deduces at compile-time a partial schedule for the processes of a program by partitioning the atoms of each clause into threads. Threads are totally ordered sets of atoms whose relative ordering is determined by a scheduler. Threads reduce scheduler activity and permit a wealth of traditional Prolog optimisations to be applied to the concurrent logic program. A framework for schedule analysis is proposed, formulated in terms of the operational semantics for a program, which builds from the notion of a data-dependence to define a procedure for creating threads. A safety result is presented stating the conditions under which the work of the scheduler can be reduced from ordering processes to ordering threads. A polynomial-time compilation scheme is outlined which takes as input information derived from existing forms of compile-time analysis and produces as output the threads of a clause. Schedule analysis has been integrated into a compiler and preliminary results suggest that it can play a central r^ole in compilation. The execution of a concurrent logic program can break down into the evaluation of fine-grained processes. This can present a mismatch of granularity between the program and the multiprocessor which degrades performance. One approach for dealing with processes which are to fine-grained is to coalesce them into larger grains. A compile-time technique for coalescing fine-grained processes is proposed, called granularity analysis, which derives complexity functions for processes at compile-time. The complexity functions are the solutions of difference equations on argument sizes, formulated as functions of the size of the data. By comparing the complexities of the computation and the communication, coalescing decisions can be made at compile-time. The granularity analysis approach is refined by combining it with a variant of schedule analysis in a single unified technique called serialisation analysis. Serialisation analysis both partitions a program into grains for parallel evaluation and orders the grains for sequential evaluation. Serialisation analysis is based on threads to reduce scheduler activity, incurs no extra run-time overhead, and is straightforward to implement.

This record has no associated files available for download.

More information

Published date: 1992

Identifiers

Local EPrints ID: 461296
URI: http://eprints.soton.ac.uk/id/eprint/461296
PURE UUID: 67ba1844-4e31-4014-b384-1a2086eeaf65

Catalogue record

Date deposited: 04 Jul 2022 18:42
Last modified: 04 Jul 2022 18:42

Export record

Contributors

Author: Andrew Malcolm King

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×