| D.C. Sehr, Automatic Parallelization of Prolog Programs, Ph.D. dissertation, Univ.of Illinois at Urbana-Champaign, 1992. |
....respect to the possibility of AND parallel execution of the (implicit) parallelism present in the logic programs. 1. Preliminaries Automatic parallelization is the most suitable technique at the moment for exploiting the inherent parallelism from programs written in logic programming languages [Sehr92]. Among the parallel execution models employed at the level of logic programming languages, the AND parallel model raises the most complex problems [Chass84, Herm89, Lin88] That is because this model is confronted with data dependence relations that appear frequently between the subgoals of a ....
D.C. Sehr, Automatic Parallelization of Prolog Programs, Ph.D. dissertation, Univ.of Illinois at Urbana-Champaign, 1992.
....what follows, the construction of the DUN of a FCP program is based on its transformed program. To determine the set of D(v) and U(v) of a literal corresponding to a vertex v in the CFN, we use two abstract interpretations. One abstract interpretation which is a variation on that proposed by Sehr [20] is done to get the set U(v) of variables used at each literal, The set D(v) of variables defined at each literal are found by another abstract interpretation called mode inference that infers approximate bindings for variables taking aliasing into account. This work are based on that proposed by ....
....set U(v) of variables used at each literal, The set D(v) of variables defined at each literal are found by another abstract interpretation called mode inference that infers approximate bindings for variables taking aliasing into account. This work are based on that proposed by Dabray [6] and Sehr [20]. To obtain the sets of S(v) and R(v) we can do as follows. If there is a literal represented by a vertex v in the CFN containing a read only variable X , we add X into R(v) If there is a literal represented by v containing a writable variable X such that X is its read only variable occurred in ....
[Article contains additional citation context not shown here]
D. C. Sehr, "Automatic Parallelization of Prolog Programs," PhD thesis, University of Illinois at Urbana-Champaign, October, 1992, CSRD Report 1288.
....This defect can be remedied. Finally, we note that changing the indexing algorithm turned out to reduce control flow information substantially, by (a) improving indexing and (b) reducing the number of new predicates generated to avoid code duplication. 7 Related work Debray [4] and Sehr [11, 12] use control flow graphs to optimize sequential programs and extract parallelism, respectively. However, both authors considered only intraprocedural control flow. In our formulation, procedure calls disappear in an interprocedural sea of assignments, continuation creation and primitive ....
D.C. Sehr, Automatic Parallelization of Prolog Programs, Ph.D. Thesis, Univ. of Illinois at Urbana Champaign, 1992.
....the statements. The most common type of program dependence in a logic program, such as a Prolog program, is the data dependence between literals in a clause of the program due to sharing a variable. This type of program dependence has received much interest in the logic programming community [2,3,6,18]. Program dependence information is very useful for the generation of efficient code for logic programs. Such information can be used for the compile time optimization of backtracking and parallelization of sequential logic programs [2,3,24] prediction of the runtime goal independence which can ....
....infers approximate bindings for variables taking aliasing into account. The mode information of a literal in an FCP program is an assertion about which of its arguments are input argument, and which are output arguments. The work for determining the sets D and U is based on that proposed by Sehr [18] who discussed how to parallelize Prolog programs automatically by using Dependence Graphs. The detail steps for how to determine the sets D and U for each literal can be found in [18] To obtain the sets of S(v) and R(v) we can do as follows. For R(v) if there is a literal represented by a ....
[Article contains additional citation context not shown here]
D. C. Sehr, "Automatic Parallelization of Prolog Programs, " PhD thesis, University of Illinois at UrbanaChampaign, October, 1992, CSRD Report 1288.
....This defect can be remedied. Finally, we note that changing the indexing algorithm turned out to reduce control flow information substantially, by (a) improving indexing and (b) reducing the number of new predicates generated to avoid code duplication. 7 Related work Debray [4] and Sehr [10, 11] use control flow graphs to optimize sequential programs and extract parallelism, respectively. However, both authors considered only intraprocedural control flow. In our formulation, procedure calls disappear in an interprocedural sea of assignments, continuation creation and primitive ....
D.C. Sehr, Automatic Parallelization of Prolog Programs, Ph.D. Thesis, Univ. of Illinois at Urbana Champaign, 1992.
....some care was needed to extend Prolog with continuations [66] In particular, a generalized trail was required to suspend and resume a proof tree branch. Such operations are beyond the scope of this paper; all our failure continuations obey a stack like discipline. Paper B Debray [44] and Sehr [123, 124] use control flow graphs to optimize sequential programs and extract parallelism, respectively. Both authors considered only intraprocedural control flow. In our formulation, procedure calls disappear in an interprocedural sea of assignments, continuation creation and primitive operations. Debray ....
....some action to be taken over a finite set of elements, which often allows data parallel execution [10] Voronkov [157] independently laid theoretical foundations for bounded quantifications. Using bounded quantifications allowed a concise data parallel approach to logic programming. Finally, Sehr [123, 124] has independently proposed extraction of data parallelism in the context of Prolog; see also Section 1.3. Loop parallelization Extracting parallelism from loops is the most popular method to parallelize imperative programs. There are essentially two methods: vectorization and concurrentization ....
[Article contains additional citation context not shown here]
D.C. Sehr, Automatic Parallelization of Prolog Programs, Ph.D. Thesis, Univ. of Illinois at Urbana Champaign, 1992. f17, 22, 23, 51g 145
....checks that backtracking is not distributed between processors. To prevent this, the compiler must ensure that all bindings for variables which are possibly shared across parallel recursive iterations can be made unconditionally. Determinacy analysis also underpins the loop parallelisation work in [44] where a series of (control flow graph) transforms are proposed to expose loops (recursive predicates) in which each iteration of the loop can be executed in parallel. Two forms of loop parallelisation are used. The first parallelisation, unlike Reform, does not require shared variables to be ....
D.C. Sehr. Automatic Parallelization of Prolog Programs. PhD thesis, Department of Computer Science, University of Illinois at Urbana Champaign (Report 1577), 1992.
....DOALL loops and recurrences which do not require synchronisation between different recursion levels. Reform Prolog handles general DO ACROSS loops. Also, Prolog uses side effects for variable binding to a much higher degree than Scheme, resulting in a different system design. Sehr, Kale, and Padua [172, 171] independently discovered recursion parallelism in Prolog. However, their ideas are much less developed. Only inner loops are parallelised, similarly to Fortran. The consequence is that less work can be parallelised and the exploited parallelism is fine grained. Also, no compiler nor ....
D. C. Sehr, Automatic Parallelization of Prolog Programs, PhD thesis, Univ. of Illinois at Urbana Champaign, 1992. --17
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC