Loading...
Please wait, while we are loading the content...
Or-parallel prolog execution on multicores based on stack splitting
| Content Provider | ACM Digital Library |
|---|---|
| Author | Rocha, Ricardo Vieira, Rui Silva, Fernando |
| Abstract | Many or-parallel Prolog computational models exploiting implicit parallelism have been proposed in the past. The Muse and YapOr systems are arguably two of the most efficient systems exploiting or-parallelism on shared memory architectures, both based on the environment copying model. Stack splitting emerged as an alternative model specially geared to distributed memory architectures as it basically splits the computation in such a way that no further, or just minimal, synchronization is required. With the new multicore architectures, it just makes sense to recover the body of knowledge there is in this area and reengineer prior computational models to evaluate their performance on newer architectures. In this paper, we focus on the design and implementation of stack splitting in the YapOr system. Our aim is to take advantage of its robustness to efficiently implement stack splitting support using shared memory, and then be able to directly compare the original YapOr with the YapOr using stack splitting. We consider two splitting models, vertical splitting and half splitting, and have adapted data structures, scheduling and incremental copy procedures in YapOr to cope with the new models. Experimental results, on a multicore machine with 24 cores, show that YapOr using stack splitting is, in general, comparable to the original YapOr, obtaining in some cases better performance than with only environment copying. |
| Starting Page | 1 |
| Ending Page | 10 |
| Page Count | 10 |
| File Format | |
| ISBN | 9781450311175 |
| DOI | 10.1145/2103736.2103738 |
| Language | English |
| Publisher | Association for Computing Machinery (ACM) |
| Publisher Date | 2012-01-28 |
| Publisher Place | New York |
| Access Restriction | Subscribed |
| Subject Keyword | Or-parallelism Logic programming Stack splitting |
| Content Type | Text |
| Resource Type | Article |