| E. Pontelli, G. Gupta, F. Pulvirenti, and A. Ferro. Automatic compile-time parallelization of Prolog programs for dependent And-parallelism. In Proceedings of the Fourteenth International Conference on Logic Programming, pages 108--122. MIT Press, July 1997. |
.... analysis to avoid having to use a general parallel execution algorithm, but instead to use one or more specialized execution algorithms for certain classes of computation (e.g. PEPSys [8, 84, 114] CIAO and its predecessors [47, 48, 93] and ACE [80] Garcia de la Banda [1] amongst others (e.g. [28, 81, 113]) developed static analysis that tried to determined which goals were independent at compile time, and inserted runtime checks where the static information was insu#cient. While this analysis was quite e#ective, and the resulting system had quite good performance, it did have two significant ....
E. Pontelli, G. Gupta, F. Pulvirenti, and A. Ferro. Automatic compile-time parallelization of Prolog programs for dependent And-parallelism. In Proceedings of the Fourteenth International Conference on Logic Programming, pages 108--122. MIT Press, July 1997.
....has been noticed since the beginning in logic programming (see [6] for an extensive survey) because the simplicity of the logical semantics makes it apparently easy to extract. However, limiting the amount of extracted parallelism in order to maximize resources allocation is a nontrivial problem [16]. Compilation towards a data parallel execution model has been studied in the Reform model [13] or in the Multilog system [19] In contrast, explicit parallel languages allow the programmer to describe precisely the parallel execution of his program by specifying independent computations, ....
Enrico Pontelli, Gopal Gupta, Francesco Pulvirenti, and Alfredo Ferro. Automatic compile-time parallelization of prolog programs for dependent ANDparallelism. In International Conference on Logic Programming, pages 108--122, 1997.
....analysis consists of evaluating sizes of goals and clauses and amount of potential parallelism. Research has been done in compile time granularity analysis for concurrent logic languages such as FGHC [21] and for parallel logic programming systems that exploit independent [22] and dependent [28] and parallelism. Besides, Debray et al. have developed the CASLOG system to perform complexity analysis of goals and clauses [4] 5] In this work we present a more complete framework for compile time granularity analysis and its implementation, GRANLOG (GRanularity ANalyzer for LOGic programs) ....
E. Pontelli and G. Gupta and F. Pulvirenti and A. Ferro, Automatic Compile-time Parallelization of Prolog Programs for Dependent And-Parallelism, Proceedings of the Fourteenth International Conference in Logic Programming (ICLP) (1997). 15
....has been noticed since the beginning in logic programming (see [6] for an extensive survey) because the simplicity of the logical semantics makes it apparently easy to extract. However, limiting the amount of extracted parallelism in order to maximize resources allocation is a non trivial problem [18, 23]. Compilation towards a data parallel execution model has been studied in the Reform model [20] or in the Multilog system [27] In contrast, explicit parallel languages allow the programmer to describe precisely the parallel execution of his program by specifying independent computations, ....
Enrico Pontelli, Gopal Gupta, Francesco Pulvirenti, and Alfredo Ferro. Automatic compile-time parallelization of prolog programs for dependent AND-parallelism. In International Conference on Logic Programming, pages 108-122, 1997.
....in the query or in the body of a clause, and at runtime these goals to do not compete for any unbound variable. iii) Dependent and parallelism (DAP) arises when two or more goals of a clause access common variables and are executed in parallel. The ACE System The ACE model (Gupta et al. 1994; Pontelli 1997) uses stack copying (Ali Karlsson 1990) and recomputation (Gupta et al. 1994) to efficiently support combined or and independent and parallel execution of logic programs. ACE represents an efficient combination of or and independent and parallelism in the sense that penalties for supporting ....
....and structurally dependent anaphora and ellipsis. Experimental Results Parallelization of Artwork: The parallelization of Artwork was performed semi automatically. The ACE compiler was used to identify potential sources of parallelism. Additionally, the rich output of the ACE static analyzer (Pontelli et al. 1997) (e.g. sharing information) allowed us to identify features of the program that were limiting the parallelism exploitable. Very few hand modifications of the original code were needed to considerably improve the speedups achieved, as discussed in the next subsection. Ambiguity in NLP gives rise ....
[Article contains additional citation context not shown here]
Pontelli, E., Gupta, G. et al. 1997. Automatic Compiletime Parallelization of Prolog Programs for DAP. In ICLP97. MIT Press.
....of the producer and consumer subgoals for a given dependent variable. We assume that during compilation a program is statically annotated to identify the promising sources of parallelism (in the same style as DASWAM [45] details on how to generate annotations are omitted due to lack of space [38]) For each dependent variable identified in the program, we need to maintain the producer and the consumer goals. If a producer goal finishes without binding the dependent variable, then the producer status should be dynamically passed to the leftmost consumer goal. Our implementation of dynamic ....
.... our knowledge, the Filtered Binding Model is the first model to satisfy this ideal theoretical properties all existing models fail to maintain the constant time behaviour [40] More details on the Filtered Model and on its properties can be found in [35, 40] The interested reader is referred to [35, 38] for additional details. An additional step is required when a subgoal terminates: if it is a producer goal, then on termination it should transfer the producer status to the next active subgoal in the parallel call by changing its filter. This is also a constant time operation as the next goal to ....
[Article contains additional citation context not shown here]
E. Pontelli, G. Gupta, F. Pulvirenti, and A. Ferro. Automatic compiletime parallelization of prolog programs for dependent and-parallelism. In L. Naish, editor, International Conference on Logic Programming, pages 108--122. MIT Press, 1997.
....different and agents. Since we are exploiting independent and parallelism, only independent subgoals are allowed to be executed concurrently by different and agents. In order to ensure this, in ACE we have adopted the proposal originally designed by DeGroot [9] and refined by various researchers [14, 22, 27] of annotating the program at compile time with Conditional Graph Expressions (CGEs) A conditional graph expression (CGE for simplicity) is an expression of the form: h conditions i ) B 1 Delta Delta Delta Bn ) where h conditions i is a conjunction of simple tests on variables appearing ....
....automatic generation of CGEs. The compiler is based on abstract interpretation techniques and was originally developed by Hermenegildo s group in Madrid [3] This compiler has been modified by us to integrate advanced features, like granularity control and detection of dependent and parallelism [22]. In any IAP system it is common to distinguish between two phases during the execution of a program: 1. forward execution: this phase deals with the selection of subgoals and execution of the resolution steps. The set of conjunctive subgoals that are executed in and parallel is termed a parallel ....
[Article contains additional citation context not shown here]
Pontelli, E., Gupta, G., Pulvirenti, F., and Ferro, A. Automatic compile-time parallelization of prolog programs for dependent and-parallelism. In International Conference on Logic Programming (1997), MIT Press.
....of the producer and consumer subgoals for a given dependent variable. We assume that during compilation a program is statically annotated to identify the promising sources of parallelism (in the same style as DASWAM [27] details on how to generate annotations are omitted due to lack of space [22]) For each dependent variable identified in the program, we need to maintain the producer and the consumer goals. If a producer goal finishes without binding the dependent variable, then the producer status should be dynamically passed to the leftmost consumer goal. Our implementation of dynamic ....
....1 Proc 2 p q descriptor p s info. q s info. filter Parallel Call Descriptor Area Processor 1 executes p Processor 2 executes q X1 represents p s view of X, X2 represents q s. Figure 2: The Filtered Binding Model Model are not reported here for lack of space. The interested reader is referred to [19, 22] for additional details. An additional step is required when a subgoal terminates: if it is a producer goal, then on termination it should transfer the producer status to the next active subgoal in the parallel call by changing its filter. This is also a constant time operation as the next goal to ....
[Article contains additional citation context not shown here]
Pontelli, E., Gupta, G., Pulvirenti, F., and Ferro, A. Automatic compile-time parallelization of prolog programs for dependent and-parallelism. In International Conference on Logic Programming (1997), MIT Press.
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