30 citations found. Retrieving documents...
M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990 See also: http://www.sics.se/isl/sicstus.html.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Design and Implementation of the GNU Prolog System - Diaz, Codognet (2001)   (9 citations)  (Correct)

....process. However, WAM code cannot be executed directly on mainstream computers and therefore requires some treatment in order to become executable. Classical techniques consist either in executing directly the WAM code with an emulator written in C (the original version of SICStus Prolog [2]) or assembler (Quintus Prolog) or directly compiling to native code (Prolog by BIM, latest version of SICStus Prolog, Aquarius Prolog [13] Another approach consists in translating Prolog to C, a choice made to keep the implementation simple without penalizing too greatly its performance. The ....

....temporary. Permanent variables are assigned. the WAM code associated to the clause is generated. registers (temporary variables) are assigned and optimized. The code of all the clauses of a predicate are grouped and the indexing code is generated. For further details the reader can refer to [2]. The WAM le produced by pl2wam is a text le complying to the Prolog syntax. This makes it possible to provide a WAM le (produced by another Prolog to WAM compiler using the appropriate syntax) to gplc but also to pass the WAM le to any emulator, e.g. a system written in Prolog. This ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD dissertation, SICS, Sweden, 1990.


Copying garbage collection for the WAM: to mark or not to.. - Demoen, Nguyen..   (Correct)

....in particular (see [3, 2] is also assumed. We will use three WAM based systems in this paper: SICStus Prolog, Yap and hProlog. The rst two are only used for making a short comparison of their garbage collectors to the hProlog one in Section 2. The SICStus Prolog implementation is described in [5]. About Yap one can nd implementation details in [8] hProlog is a successor of dProlog [10] and is available from the rst author. hProlog is meant to become a back end to HAL [9] We will use the following terminology: the heap is the area in which the WAM allocates structured terms ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990 See also: http://www.sics.se/isl/sicstus.html.


Trying Out Alternatives for Type Class Support in a new.. - Demoen, Banda, Stuckey   (Correct)

....: instance ord(int) where [ pred ( 2) is intsmaller, pred ( 2) is intlarger ] We have chosen the names intequal, intsmaller and intlarger for avoiding confusion, but in Prolog, these are implemented by the usual , and = operators, of course. Now, let us assume that the query or goal qsort([3,1,4,2,6,5], Out) appears somewhere in the program. The HAL compiler would implement the basic translation de ned in [8] by generating the following hProlog code for the query: Dict = ord(intsmaller, intlarger, eq(intequal) qsort( 3,1,4,2,6,5] Out,Dict) and translating the de nition of ....

....course. Now, let us assume that the query or goal qsort( 3,1,4,2,6,5] Out) appears somewhere in the program. The HAL compiler would implement the basic translation de ned in [8] by generating the following hProlog code for the query: Dict = ord(intsmaller, intlarger, eq(intequal) qsort([3,1,4,2,6,5], Out,Dict) and translating the de nition of predicates qsort 3 and split 4 as follows: qsort( L,L, split( qsort( X R] Acc,Out,Dict) split( A R] Split,Small,Larg,Dict) split(R,X,Small,Larg,Dict) Dict = ord(SmallPred, LargePred, qsort(Larg,Acc,LS,Dict) ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990. See also: http://www.sics.se/isl/sicstus.html


About Unnecessary Performance Differences between Prolog.. - Demoen, Nguyen   (Correct)

....are emulators, we nd huge performance di erences that seem unjusti ed. We gain also some insight in the overhead that ISO imposes. 1 Introduction We assume knowledge of Prolog and its implementation. For a good introduction to the WAM, see [1, 12] the SICStus implementation is described in [2]. About Yap one can nd implementation details in [3] for GNU Prolog at [8] SWI Prolog can be found at [11] ECLiPSe at [9] hProlog is a successor of [6] and is available at [10] hProlog is meant to become a back end to HAL [7] The ultimate documentation of these systems their source code ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990. See also: http://www.sics.se/isl/sicstus.html


SICStus Prolog User's Manual - Laboratory (2001)   (12 citations)  (Correct)

....Prolog. The Prolog engine is a Warren Abstract Machine (WAM) emulator [Warren 83] Two modes of compilation are available: in core i.e. incremental, and file to file. When compiled, a predicate will run about 8 times faster and use memory more economically. Implementation details can be found in [Carlsson 90] and in several technical reports available from SICS. SICStus Prolog follows the mainstream Prolog tradition in terms of syntax and built in predicates. As of release 3.8, SICStus Prolog provides two execution modes: the iso mode, which is fully compliant with the International Standard ISO IEC ....

M. Carlsson, Design and Implementation of an OR-Parallel Prolog Engine, SICS Dissertation Series 02, 1990.


So many WAM variations, so little time. - Demoen, Nguyen   (Correct)

....kept equal. We intend to do exactly that: evaluate empirically and compare directly within the same basic implementation the four above mentioned term representations. Such an experiment only makes sense if the basic Prolog implementation is reasonably complete and fast. Yap [4] or SICStus Prolog [3] could have served as a good starting point for the experiment. However, adapting such systems is very time consuming and that was one reason for starting almost from scratch: because of our prior involvement with XSB (see e.g. 7] we borrowed the XSB compiler (see [17] for the generation of ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990.


Heap Garbage Collection in XSB: Practice and Experience - Demoen, Sagonas (2000)   (4 citations)  (Correct)

....with unitialized environment variables The WAM does not need to initialize permanent variables (in the local stack) on allocation of an environment, because its instruction set is specialized for the rst occurrence of a variable. On the other hand, some Prolog systems (e.g. SICStus; see also [4]) do initialize some permanent variables just for the sake of garbage collection. This makes the marking phase more precise; the alternative is a conservative marking schema which follows cautiously all heap pointers from an environment whether from an active permanent variable or not. Indeed, ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990.


The GNU Prolog System and its Implementation - Diaz, Codognet (2000)   (9 citations)  (Correct)

....as permanent or temporary, permanent variables are assigned. Subsequently, the WAM code associated to the clause is generated. Finally, registers (temporary variables) are assigned and optimized. The code of each clause of a predicate is then grouped and the indexing code is generated, see [2] for details. This compiler benefits from many (well known) optimizations: register optimization, unification reordering, inlining, last subterm optimization, etc. Most of these optimizations can be deactivated using command line options. Deactivating all options makes it possible to study the ....

M. Carlsson. Design and Implementation of an OrParallel Prolog Engine. PhD dissertation, SICS, Sweden, 1990.


Heap Garbage Collection in XSB: Practice and Experience - Demoen, Sagonas (2000)   (4 citations)  (Correct)

....unitialized environment variables The WAM does not need to initialize permanent variables (in the local stack) on allocation of an environment, because its instruction set is specialized for the first occurrence of a variable. On the other hand, some Prolog systems (e.g. SICStus Prolog; see also [4]) do initialize some permanent variables just for the sake of garbage collection. This makes the marking phase more precise; the alternative is a conservative marking schema (like Quintus Prolog implemented) which follows cautiously all heap pointers from an environment whether from an active ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, Department of Telecommunication and Computer Systems, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990.


SICStus MT - A Multithreaded Execution Environment for SICStus.. - Eskilson (1998)   (4 citations)  (Correct)

....of some existing Prolog implementation which support concurrency parallelism in different ways can be found in [18] A comparison of SICStus MT with the languages ERLANG [19] Java [25, 24] Oz 2.0 [23] and CS Prolog Professional [45] is provided in Section 5.3. The AND OR parallel Prolog systems [32, 33, 34, 18] are worth a separate mention. AND OR parallelism exploit the inherent parallelism in Prolog programs by utilizing sharedmemory MIMD architectures and creating processes as a result of conjunctions or disjunctions in the Prolog code. This kind of parallelism is also called goal parallelism, as ....

Mats Carlsson. Design and Implementation of an OR-Parallel Prolog Engine. SICS Dissertation Series 02, The Royal Institute of Technology, 1990.


Selective Recomputation for Handling Side-effects in Parallel.. - Zhiyi Huang   (Correct)

....maximum parallelism. The idea of SR is applicable to other AND OR parallel execution models systems as well. Keywords: Logic Programming, Parallel Processing, AND parallelism, ORparallelism, OR forest, Side effect 1 Introduction Since the first effort in 1981 [15] a lot of works have been done [13, 1, 17, 10, 18, 6, 16, 3, 19] in the area of parallel execution of logic programs. The major difference among the parallel execution models systems is that they exploit different forms of parallelism in different ways. In logic programs there are three major forms of parallelism: OR parallelism (ORP) AND parallelism which is ....

....Actually, the token is passed in the OR forest in accordance with the execution order in sequential Prolog. In above description, to retrieve the left most active branch in a tree, we can keep some pointers, e.g. left sibling node, right sibling node, in a choice point of WAM [22] as in Aurora [3]. This kind of implementation techniques is very mature in OR parallel logic programming systems [9, 3] We will not discuss those implementation techniques, which are beyond the scope of this paper. Definition5. left to right position The left to right position of a node is an order decided by ....

[Article contains additional citation context not shown here]

Mats Carlsson: "Design and Implementation of an OR-Parallel Prolog Engine," Ph.D. Thesis, The Royal Institute of Technology, Stockholm, 1990.


The Compilation and Execution of Recursion-Parallel Prolog on.. - Lindgren (1993)   (5 citations)  (Correct)

....and second, resolution may be done against any clause. In principle, nothing stops us from performing several resolution steps simultaneously. Resolving several goals simultaneously is called and parallelism, while simultaneously resolving a goal against several clauses is or parallelism [2, 78, 34, 13, 55] In this thesis, we will concentrate on (dependent) and parallelism. Prolog adds impure primitives (i.e. operations that are not referentially transparent) the ability to prune proof trees, input output and an implicit sequential operational semantics to the logic programming paradigm. A ....

M. Carlsson, Design and Implementation of an Or-Parallel Prolog Engine, Ph.D. Thesis, SICS-RITA/02, 1990. f3g


Compilation Techniques for Prolog - Lindgren (1996)   (Correct)

....designs have been built on the WAM, including Quintus Prolog, SICStus Prolog and Eclipse. Warren s design has been the starting point of two major directions of research. The first of these is to improve on Warren s engine by local optimizations which target each clause or predicate in isolation [26]. An example of this is when clauses fail early. In this case, backtracking can be optimized [27, 96] A second example is that unifications can be compiled into very efficient code [150, 91, 95] As a third example, clause indexing can be improved by sophisticated source to source transformation ....

M. Carlsson, Design and Implementation of an Or-Parallel Prolog Engine, Ph.D. Thesis, SICS-RITA/02, 1990. f2, 151g


Parameter Passing and Control Stack Management in Prolog.. - Zhou (1994)   (4 citations)  (Correct)

....Programming Languages and Systems, Parameter Passing and Control Stack Management for Prolog 1 13 then the unbound variable must be globalized. 2 The build struct and build list are used only to encode the last components of compound terms. There are similar instructions in some WAM variants [Carlsson 1990]. Unify and Unify Argument. Unify instructions correspond to calls of the = There are one or more unify argument instructions following unify struct and unify list that are responsible for unifying components of the compound term. The unify struct Z,f n instruction will set the RW and S ....

Carlsson, M. 1990. Design and implementation of an or-parallel prolog engine. Ph.D. thesis, S-16428, Swedish Institute of Computer Science, Kista, Sweden.


Parallel Logic Programming On Distributed Shared Memory System - Zhiyi Huang (1997)   (Correct)

....is supposed to be portable to various operating systems and architectures. Thus, based on this sort of platform, the applications are more portable on various distributed systems. 2. ANDORRA I PARALLEL LOGIC PROGRAMMING SYSTEM A lot of works have been done on parallel execution of logic programs [14, 5, 1, 16, 8, 17]. There are a few systems implemented on multiprocessors, one of which is the Andorra I system which exploits both determinate dependent AND parallelism and OR parallelism. The Andorra I system is based on the Basic Andorra Model, which transparently exploits determinate dependent AND parallelism ....

Mats Carlsson: "Design and Implementation of an OR-Parallel Prolog Engine," Ph.D. Thesis, The Royal Institute of Technology, Stockholm, 1990.


A Recursion Parallel Prolog Engine - Bevemyr (1993)   (4 citations)  (Correct)

....seconds compared with 8.0 seconds) The reason for this appears to be that Sun 4 machines use directly mapped caches. Chapter 4 Process Management P rocess management and scheduling are critical points in many of the parallel Prolog systems existing today. OR parallel systems, such as Aurora [9] and Muse [20] depend heavily on scheduling algorithms to distribute work among workers. In AND and OR parallel systems it is essential not to exploit all possible parallelism since the scheduling and process spawning overhead might easily grow out of hand. Granularity control is a challenging ....

Carlsson, M., Design and Implementation of an OR-Parallel Prolog Engine, Ph.D. Thesis, Swedish Institute of Computer Science, 1990. f23g


A Parallel Prolog Compiler and its Implementation - Wenfeng Li (1993)   (Correct)

....Q. Logic programming has the very desirable characteristic of supporting implicit parallelism, that is, it offers a uniform view of computation independent of the underlying system architecture. Parallelism in a logic program can be extracted effectively as demonstrated by many previous studies [2, 4, 13, 14, 15]. However, to satisfy the demand for efficiency, in terms of speed and space, by users who are accustomed to imperative languages, logic programming alone is hardly adequate. It lacks the capability to describe the fine details of certain computation, which may be necessary to attaining ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, Swedish Insitute of Computer Science, 1990.


Data-parallel Implementation of Prolog - Bevemyr (1996)   (Correct)

....algorithms. There is also a survey of collection schemes for sequential logic programming languages by Bekkers, Ridoux and Ungaro [28] 22 Summary Parallel Collection Most parallel Prolog implementations do not include a garbage collector. OR parallel systems such as Muse [4] and Aurora [44, 129] use more or less sequential mark sweep collectors [2, 71, 72] The Aurora collector [220] designed by Weemeeuw and Demoen is slightly more complicated since Aurora uses the SRI model [215] for OR parallel execution with its more complicated data structures. The closest we get to a parallel ....

M. Carlsson, Design and Implementation of an Or-Parallel Prolog Engine, PhD thesis, SICS-RITA/02, 1990. --22


Handling Side-effects with Selective Recomputation in AND/OR.. - Zhiyi Huang   (Correct)

....and maximum parallelism, and it is applicable to other AND OR parallel execution models systems as well. Keywords: Logic Programming, Parallel Processing, AND parallelism, ORparallelism, OR forest, Side effect 1 Introduction Since the first effort in 1981 [20] a lot of works have been done [18, 1, 22, 13, 23, 9, 21, 11, 3, 24, 7] in the area of parallel execution of logic programs. The major difference among the parallel execution models systems is that they exploit different forms of parallelism in different ways. In logic programs there are three major forms of parallelism: OR parallelism(ORP) AND parallelism which is ....

....sequential model, by the seed node. In next section, we propose the SR approach, which selectively recompute side effect part of a child tree instead of the whole child tree as in [10] It can solve the side effect problem in OR forest with minimum recomputation and maximum parallelism. write([1,3,6]) write( 1,4,5] write( 1,4,6] write( 2,3,5] write( 2,3,6] write( 2,4,5] write( 2,4,6] X=1 Y=3 Z=5 X=1 Y=4 Z=5 X=1 Y=4 Z=6 Y=3 Z=5 Y=3 Z=6 X=2 X=2 Z=6 Y=3 X=1 Y=4 X=2 Z=5 Z=6 Y=4 X=2 4 6 9 11 15 17 20 22 p(X) q(Y) r(Z) write( 1,3,5] seed node normal node leaf node q(Y) Y=3,write(Y) ....

[Article contains additional citation context not shown here]

Mats Carlsson: "Design and Implementation of an OR-Parallel Prolog Engine," Ph.D. Thesis, The Royal Institute of Technology, Stockholm, 1990.


On Applying Or-Parallelism to Tabled Evaluations - Rocha, Silva, Costa (1997)   (1 citation)  (Correct)

....leftmost, or just for lack of non speculative work in the search tree. The unified suspension mechanism must be in this case sufficiently efficient to support all forms of suspension with minimal overhead. This approach seems therefore closer for the SRI model [War87a] used in Aurora [LBD 88, Car90] a model designed in a way that suspension can be implemented with little overhead. In this paper, we first briefly introduce the general concepts underlying tabling and its implementation using the SLG WAM. Next, we discuss the fundamental issues in supporting or parallelism for SLG resolution ....

Mats Carlsson. Design and Implementation of an OR-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology, Stockholm, March 1990.


The SBA: Exploiting Orthogonality in AND-OR Parallel Systems - Correia, Silva, Costa (1997)   (1 citation)  (Correct)

....SBA based execution model. We extend the Or parallel WAM, as used in the Aurora system, and combine it with the IAP parallel mechanisms developed for Prolog and or ACE, using the SBA for environment representation. We concentrate on the issues relevant for the combined system, please consult [3, 14] for the issues in or parallel and and parallel systems. The abstract machine registers closely follow the WAM registers. We introduce two new registers for independent and parallelism. The PF register always points to the current parcall frame should a failure occur. The M register points to the ....

M. Carlsson. Design and Implementation of an OR-Parallel Prolog Engine. SICS Dissertation Series 02, The Royal Institute of Technology, 1990.


Executing Suspended Logic Programs - Kowalski, Toni, Wetzel (1998)   (10 citations)  (Correct)

....We assume that the heads of iff definitions defining the same predicate do not unify. The use of iff definitions also allows a direct representation of disjunction in goals giving a declarative representation to alternative branches in the search tree of ordinary LP goals (similarly to Muse Prolog [2]) The paper is organised as follows. Section 2 presents the framework, called Suspended Logic Programming (SLP) and discusses its use for problem solving and knowledge representation. Section 3 presents the basic proof procedure for SLP. Section 4 describes applications. Section 5 discusses ....

Carlsson, M.: Design and Implementation of an OR-Parallel Prolog Engine, SICS Dissertation Series 02, The Royal Institute of Technology, Stockholm, Sweden, 1990.


Design and Implementation of a Distributed Parallel Programming.. - Lin Zhou   (Correct)

....as it does not appear to be an obvious choice. ffl a Horn clause program, in conjunction with a SET operator, to be defined in the next section, can describe a fork joint graph conveniently ffl parallelism in a logic program can be extracted effectively as demonstrated by many previous studies [1, 4, 16, 17, 11], due partly to the fact that there is no hidden dependency among alternative clauses in a logic program ffl a logic program can be very concise, and sometimes they are declarative as well However, to satisfy the demand for efficiency, in terms of speed and space, by users who are accustomed to ....

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, Swedish Insitute of Computer Science, 1990.


Working Within the FGCS National Project - Tick (1992)   (Correct)

....Many research groups were developing schemes for exploiting parallelism (e.g. 3, 8, 16, 26, 45, 50, 55, 89] I think funding for the FGCS Project motivated many international researchers to continue in this area. Two particularly promising systems at the time were Aurora OR parallel Prolog 3 [13, 51, 72] and the family of committed choice languages [69, 68] Aurora was being developed at the University of Manchester (later at the University of Bristol) Argonne National Laboratories (ANL) and the Swedish Institute of Computer Science (SICS) Committed choice languages were being developed ....

M. Carlsson. Design and Implementation of an OR-Parallel Prolog Engine. PhD thesis, Royal Institute of Technology, SICS Dissertation Series 02, March 1990.


Parallel Execution of Prolog Programs: A Survey - Gupta, Ali, Carlsson, al. (1995)   (10 citations)  Self-citation (Carlsson)   (Correct)

....point) A worker has two conceptual components: an engine, which is responsible for the actual execution of the Prolog code, and a scheduler, which provides the engine component with work. These components are in fact independent of each other, and a clean interface between them has been designed [132, 32] allowing different schedulers and engines to be plugged in. To date, Aurora has been run with five different schedulers, and the same interface has been used to connect one of the schedulers with the Andorra I engine [120] to support both and and or parallelism. The Aurora engine 12 and ....

....allowing different schedulers and engines to be plugged in. To date, Aurora has been run with five different schedulers, and the same interface has been used to connect one of the schedulers with the Andorra I engine [120] to support both and and or parallelism. The Aurora engine 12 and compiler [32] were constructed by adapting SICStus Prolog 0.6. Garbage collection for Aurora has been investigated by Weemeeuw [146] In the SRI model, the search tree, defined implicitly by the program, is explicitly represented by a cactus stack generalizing the stacks of sequential Prolog execution. ....

Mats Carlsson. Design and Implementation of an OR-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology, Stockholm, 1990. 44


Copying garbage collection for the WAM: - To Mark Or   (Correct)

No context found.

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD thesis, The Royal Institute of Technology (KTH), Stokholm, Sweden, Mar. 1990 See also: http://www.sics.se/isl/sicstus.html.


GNU Prolog: beyond compiling Prolog to C - Diaz, Codognet   (2 citations)  (Correct)

No context found.

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD dissertation, SICS, Sweden, 1990.


Tcl/Tk Interface - Tcltk Library Package   (Correct)

No context found.

M. Carlsson, Design and Implementation of an OR-Parallel Prolog Engine, SICS Dissertation Series 02, 1990.


GNU Prolog: beyond compiling Prolog to C - Daniel Diaz And   (2 citations)  (Correct)

No context found.

M. Carlsson. Design and Implementation of an Or-Parallel Prolog Engine. PhD dissertation, SICS, Sweden, 1990.


A new Scheme for Unification in WAM. - Marien, Demoen (1991)   (5 citations)  (Correct)

No context found.

M. Carlsson, `Design and Implementation of an OR-Parallel Prolog Engine' PhD thesis SICS Dissertation Series 02, ISSN 1101-1335 1990

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