Using automatic memoization as a software engineering tool in real-world AI systems

@article{Mayfield1995UsingAM,
  title={Using automatic memoization as a software engineering tool in real-world AI systems},
  author={James Mayfield and Timothy W. Finin and M. R. Hall},
  journal={Proceedings the 11th Conference on Artificial Intelligence for Applications},
  year={1995},
  pages={87-93}
}
Memo functions and memoization are well-known concepts in AI programming. They have been discussed since the sixties and are often used as examples in introductory programming texts. However, the automation of memoization as a practical software engineering tool for AI systems has not received a detailed treatment. This paper describes how automatic memoization can be made viable on a large scale. It points out advantages and uses of automatic memoization not previously described, identifies… Expand
System and Method for Detecting Potential Places for Memoization in Recursive Functions of a Computer Programming Code
A system and method for detecting potential places for memoization in recursive functions of a computer programming code, includes a software tool to detect the suitable places for memoization in aExpand
Automated Memoization for Parameter Studies Implemented in Impure Languages
TLDR
This work proposes an approach able to reliably detect the full input and output of a function, including reading and writing objects through arbitrarily indirect pointers with some preconditions, and shows the feasibility of the approach and derive simple performance approximations enabling rough predictions of the expected benefit. Expand
Selective memoization
We present a framework for applying memoization selectively. The framework provides programmer control over equality, space usage, and identification of precise dependences so that memoization can beExpand
On Automated Memoization in the Field of Simulation Parameter Studies
TLDR
The first practical approach for automated memoization for impure code is extended and a number of extensions that deal with questions posed at PADS are evaluated, including several cache eviction strategies. Expand
Window memoization: toward high-performance image processing software
TLDR
A new performance improvement technique, window memoization, for software implementations of local image processing algorithms, which minimizes the number of redundant computations performed on an image by identifying similar neighborhoods of pixels in the image and skipping the computations that are not necessary. Expand
Improve performance of machine translation service using memcached
TLDR
This paper describes how memcached has been applied to improve the performance of Sampark machine translation service which is deployed on a large cluster of machines by applying distributed caching to MT system. Expand
Optimizations in Stream Programming for Multimedia Applications by
TLDR
A memoization technique that exploits the fact that multimedia applications are tolerant in the accuracy of the program output and the repetitive nature of multimedia data is applied and a runtime system that automatically tunes the memoization capabilities for performance and output quality is provided. Expand
Emulating goliath storage systems with David
TLDR
David is a system that makes it practical to run large benchmarks using modest amount of storage or memory capacities readily available on most computers, and is able to emulate a 1-TB target workload using only an 80 GB available disk, while still modeling the actual runtime accurately. Expand
INTENSIVE 2012 Proceedings
  • 2015
The capture of large amounts of hardware trace data by recent hardware trace units in System-on-a-Chip (SoC) defines the new requirements for hardware trace analysis. Several hundreds of MiB need toExpand
Computational Redundancy in Image Processing
TLDR
It is demonstrated (mathematically and empirically) that the amount of coding and interpixel redundancy of an image has a positive effect on the speedup obtained for the image by window memoization in both software and hardware. Expand
...
1
2
...

References

SHOWING 1-10 OF 23 REFERENCES
Improving the Performance of AI Software: Payoffs and Pitfalls in Using Automatic Memoization
a system run, and to save expensive calculations during an off-line session. It is also a useful aid for timing and profiling code, even in applications where only conventional optimization is beingExpand
Techniques for Automatic Memoization with Applications to Context-Free Parsing
It is shown that a process similar to Earley's algorithm can be generated by a simple top-down backtracking parser, when augmented by automatic memoization. The memoized parser has the sameExpand
Memoing for logic programs
  • D. Warren
  • Mathematics, Computer Science
  • CACM
  • 1992
TLDR
Prolog, with its depth-first backtracking search through the tree of SLD refutations, is a procedural implementation of the declarative Horn clause language, which can benefit from the kinds of optimization techniques developed for traditional procedural languages. Expand
Automating Program Speedup by Deciding What to Cache
TLDR
The analysis extends previous work on caching by considering side effects, shared data structures, program edits, and the acceptability of behavior changes caused by caching. Expand
An efficient context-free parsing algorithm
TLDR
A parsing algorithm which seems to be the most efficient general context-free algorithm known is described and appears to be superior to the top-down and bottom-up algorithms studied by Griffiths and Petrick. Expand
An efficient context-free parsing algorithm
TLDR
A parsing algorithm which seems to be the most efficient general context-free algorithm known is described and appears to be superior to the top-down and bottom-up algorithms studied by Griffiths and Petrick. Expand
Structure and Interpretation of Computer Programs
TLDR
Structure and Interpretation of Computer Programs emphasizes the central role played by different approaches to dealing with time in computational models, appropriate for an introduction to computer science courses, as well as programming languages and program design. Expand
Prolog and Natural-Language Analysis
From the Publisher: A concise and practical introduction to logic programming and the logic-programming language Prolog, both as vehicles for understanding elementary computational linguistics andExpand
Term Rewriting with Sharing and Memoïzation
Jungle evaluation is an approach to define term rewriting with sharing based on graph grammars. This approach preserves important properties of term rewriting like termination, and confluence forExpand
Paradigms of AI Programming: Case Studies in Common LISP
  • Paradigms of AI Programming: Case Studies in Common LISP
  • 1992
...
1
2
3
...