DocumentCode
2996457
Title
An Efficient and Scalable Memory Allocator for Multithreaded Tabled Evaluation of Logic Programs
Author
Areias, M. ; Rocha, R.
Author_Institution
Fac. of Sci., Univ. of Porto, Porto, Portugal
fYear
2012
fDate
17-19 Dec. 2012
Firstpage
636
Lastpage
643
Abstract
Despite the availability of both multithreading and tabling in some Prolog systems, the implementation of these two features, such that they work together, implies complex ties to one another and to the underlying engine. In recent work, we have proposed an approach to combine multithreading with tabling, implemented on top of the Yap Prolog system, whose primary goal was to reduce memory usage for the table space. Regarding the execution times, we observed some problems related to Yap´s memory allocator, which is based on the operating system´s default memory allocator, when running programs that allocate a higher number of data structures in the table space. In this paper, we propose a more efficient and scalable memory allocator for multithreaded tabled evaluation of logic programs. Our goal is to minimize the performance degradation that the system suffers when it is exposed to simultaneous memory requests made by multiple threads. For that, we propose a memory allocator based on local and global pages, to split memory among specific data structures and different threads, together with a strategy where data structures of the same type are pre-allocated within a page. Experimental results show that our new memory allocator can effectively reduce the execution time and scale better, when increasing the number of threads, than the original allocator.
Keywords
PROLOG; data structures; logic programming; multi-threading; operating systems (computers); Yap Prolog system; data structures; execution time reduction; global pages; local pages; logic programs; memory allocator scalability; memory requests; memory usage reduction; multithreaded tabled evaluation; operating system default memory allocator; performance degradation minimization; Arrays; Instruction sets; Multithreading; Organizations; Resource management; Synchronization; Logic Programming; Memory Allocation; Multithreading; Performance; Scalability; Tabling;
fLanguage
English
Publisher
ieee
Conference_Titel
Parallel and Distributed Systems (ICPADS), 2012 IEEE 18th International Conference on
Conference_Location
Singapore
ISSN
1521-9097
Print_ISBN
978-1-4673-4565-1
Electronic_ISBN
1521-9097
Type
conf
DOI
10.1109/ICPADS.2012.91
Filename
6414466
Link To Document