An Efficient and Scalable Memory Allocator for Multithreaded Tabled Evaluation of Logic Programs

作者: Miguel Areias , Ricardo Rocha

DOI: 10.1109/ICPADS.2012.91

关键词: OverlayMemory managementMemory mapData structureOperating systemExecution timeMultithreadingParallel computingThread (computing)AllocatorInterleaved memoryExtended memoryComputer science

摘要: Despite the availability of both multithreading and tabling in some Prolog systems, implementation these two features, such that they work together, implies complex ties to one another underlying engine. In recent work, we have proposed an approach combine with tabling, implemented on top Yap system, whose primary goal was reduce memory usage for table space. Regarding execution times, observed problems related Yap's allocator, which is based operating system's default when running programs allocate a higher number data structures this paper, propose more efficient scalable allocator multithreaded tabled evaluation logic programs. Our minimize performance degradation system suffers it exposed simultaneous requests made by multiple threads. For that, local global pages, split among specific different threads, together strategy where same type are pre-allocated within page. Experimental results show our new can effectively time scale better, increasing than original allocator.

参考文章(8)
Rui Marques, Terrance Swift, None, Concurrent and Local Evaluation of Normal Programs international conference on logic programming. pp. 206- 222 ,(2008) , 10.1007/978-3-540-89982-2_24
Jan Wielemaker, Native preemptive threads in SWI-prolog international conference on logic programming. pp. 331- 345 ,(2003) , 10.1007/978-3-540-24599-5_23
Jeff Bonwick, The slab allocator: an object-caching kernel memory allocator usenix summer technical conference. pp. 6- 6 ,(1994)
VÍTOR SANTOS COSTA, RICARDO ROCHA, LUÍS DAMAS, The yap prolog system Theory and Practice of Logic Programming. ,vol. 12, pp. 5- 34 ,(2012) , 10.1017/S1471068411000512
Miguel Areias, Ricardo Rocha, Towards multi-threaded local tabling using a common table space Theory and Practice of Logic Programming. ,vol. 12, pp. 427- 443 ,(2012) , 10.1017/S1471068412000117
Weidong Chen, David S Warren, None, Tabled evaluation with delaying for general logic programs Journal of the ACM. ,vol. 43, pp. 20- 74 ,(1996) , 10.1145/227595.227597
IV Ramakrishnan, Prasad Rao, Konstantinos Sagonas, Terrance Swift, David S Warren, None, Efficient access mechanisms for tabled logic programs Journal of Logic Programming. ,vol. 38, pp. 31- 54 ,(1999) , 10.1016/S0743-1066(98)10013-4
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, Paul R. Wilson, Hoard: a scalable memory allocator for multithreaded applications architectural support for programming languages and operating systems. ,vol. 35, pp. 117- 128 ,(2000) , 10.1145/356989.357000