ABSTRACT
Progress in Prolog applications requires ever better performance and scalability from Prolog implementation technology. Most modern Prolog systems are emulator-based. Best performance thus requires both good emulator design and good memory performance. Indeed, Prolog applications can often spend hundreds of megabytes of data, but there is little work on understanding and quantifying the interactions between Prolog programs and the memory architecture of modern computers.In a previous study of Prolog systems we have shown through simulation that Prolog applications usually, but not always, have good locality, both for deterministic and non-deterministic applications. We also showed that performance may strongly depend on garbage collection and on database operations. Our analysis left two questions unanswered: how well do our simulated results holds on actual hardware, and how much did our results depend on a specific configuration? In this work we use several simulation parameters and profiling counters to improve understanding of Prolog applications. We believe that our analysis is of interest to any system implementor who wants to understand his or her own system's memory performance.
- Advanced Micro Devices, Inc. AMD Athlon Processor---x86 Code Optimization Guide. Available from http://www.amd.com/.]]Google Scholar
- T. Baer. lperfex: A hardware performance monitor for linux/ia32, http://www.osc.edu/~troy/lperfex/.]]Google Scholar
- D. Burger and T. M. Austin. The simplescalar tool set, version 2.0. Technical Report 1342, University of Wisconsin-Madison Computer Sciences Department, June 1997.]]Google ScholarDigital Library
- R. Camacho. Learning stage transition rules with Indlog. In Proceedings of the 4th International Workshop on Inductive Logic Programming, vol 237 of GMD-Studien, pages 273--290. Gesellschaft für Mathematik und Datenverarbeitung MBH, 1994.]]Google Scholar
- L. F. Castro and V. Santos Costa. On the cache performance of prolog systems. Submitted to ICLP'02. Available from http://www.cs.sunysb.edu/~luis, 2002.]]Google Scholar
- B. Demoen and P.-L. Nguyen. So Many WAM Variations, So Little Time. In LNAI 1861, Proceedings Computational Logic - CL 2000, pages 1240--1254. Springer-Verlag, July 2000.]] Google ScholarDigital Library
- B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages, number 1753 in Lecture Notes in Computer Science, pages 93--108. Springer Verlag, January 2000.]] Google ScholarDigital Library
- D. Diaz and P. Codognet. Design and implementation of the gnu prolog system. Journal of Functional and Logic Programming, 2001(6), October 2001.]]Google Scholar
- M. A. Ertl and D. Gregg. The behaviour of efficient virtual machine interpreters on modern architectures. In Euro-Par 2001, pages 403--412. Springer LNCS 2150, 2001.]] Google ScholarDigital Library
- R. P. Gabriel. Performance and evaluation of Lisp systems. MIT Press, 1985.]] Google ScholarDigital Library
- J. A. Harland and S. Michaylov. Implementing an ODE solver: a CLP approach. Technical Report TR 87/92, Department of Computer Science, Monash University, June 1987.]]Google Scholar
- B. K. Holmer, B. Sans, M. Carlton, P. V. Roy, R. C. Haygood, W. R. Bush, A. M. Despain, J. M. Pendleton, and T. Dobry. Fast Prolog with an Extended General Purpose Architecture. In Proceedings of the 17th International Symposium on Computer Architecture, 1990.]] Google ScholarDigital Library
- Intel. IA-32 Intel Architecture Software Developer's Manual---Volume 3: System Programming Guide. Available from http://www.intel.com/.]]Google Scholar
- H. Nässèn, M. Carlsson, and K. Sagonas. Instruction merging and specializing in the SICStus Prolog virtual machine. In Proceedings of PPDP'01. ACM, 2001.]] Google ScholarDigital Library
- M. Petterson. Linux x86 performance-monitoring counters driver. http://www.csd.uu.se/~mikpe/linux/perfctr/.]]Google Scholar
- L. s Fernando Castro and V. Santos Costa. Understanding Memory Management in Prolog Systems. In Proceedings of ICLP'01, November 2001.]] Google ScholarDigital Library
- V. Santos Costa. Optimising bytecode emulation for prolog. In LNCS 1702, Proceedings of PPDP'99, pages 261--267. Springer-Verlag, September 1999.]] Google ScholarDigital Library
- V. t. Santos Costa, L. Damas, R. Reis, and R. Azevedo. YAP User's Manual, 2000. http://www.ncc.up.pt/~vsc/Yap.]]Google Scholar
- P. Van Roy. Can Logic Programming Execute as Fast as Imperative Programming. PhD thesis, Computer Science Division, University of California Berkeley, Dec. 1990.]] Google ScholarDigital Library
- D. H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, 1983.]]Google Scholar
- D. H. D. Warren and F. C. N. Pereira. An Efficient, Easily Adaptable System For Interpreting Natural Language Queries. American Journal of Computational Linguistics, 8(3--4):110--122, 1982.]] Google ScholarDigital Library
Recommendations
From simulation to practice: cache performance study of a Prolog system
MSP 2002 and ISMM 2002Progress in Prolog applications requires ever better performance and scalability from Prolog implementation technology. Most modern Prolog systems are emulator-based. Best performance thus requires both good emulator design and good memory performance. ...
The Practice of Network Security Monitoring
If you don't know what's happening on your networks, you're always going to be way behind the curve when it comes to attacks. As good as your perimeter defences may be, sometime (probably soon) an attacker is going to slip past them. Or maybe an attack ...
Comments