SBIR-STTR Award

Automatic Memoization - A Practical Tool For High-Performance Artificial Intelligence Applications
Award last edited on: 4/8/2014

Sponsored Program
STTR
Awarding Agency
DOD : Army
Total Award Amount
$573,000
Award Phase
2
Solicitation Topic Code
A94T001
Principal Investigator
Marty Hall

Company Information

Franz Inc

555 12th Street Suite 1450
Oakland, CA 94607
   (510) 452-2000
   info@franz.com
   www.franz.com

Research Institution

----------

Phase I

Contract Number: ----------
Start Date: ----    Completed: ----
Phase I year
1994
Phase I Amount
$73,000
Significant advances have been made in representational and reasoning power in AI systems. However, performance issues continue to be a major concern in applying these advances to real-world projects. Automatic memoization is a technique for mechanically converting existing functions into ones that cache (or "memoize") their results. It has offered the promise of dramatic speedups in many application, but the practical issues needed to make it useful in large, high-performance systems have not previously been addressed. The prototype Common Lisp Automatic Memoization Package (CLAMP) was developed for the ARPA Signature Management System (SMS), a decision aid for submarine crews. This system needs to provide timely situation assessment and recommendations to the crew based on various sources of data. Response time and predictable performance were critical, and CLAMP was developed to address those issues. The cumulative effect of the application of automatic memoization resulted in more than a 100-fold speedup of the top-level calculations, and more than a 1000-fold reduction in the amount of temporary storage (garbage) that needed to be reclaimed at runtime. Similar results were obtained in other applications. We propose to take the prototype system and investigate two issues relevant to transforming the system from a research tool into a viable commercial package for software developers; (A) extensions and usability issues suggested by the experiences of users in five countries, and (B) the feasibility of porting the system to a lower-level but more widely used language like C++.

Keywords:
real-time applications high-performance systems artificial intelligence optimization dynamic

Phase II

Contract Number: ----------
Start Date: ----    Completed: ----
Phase II year
1996
Phase II Amount
$500,000
Automatic memoization transforms existing procedures in a computer program into versions that "remember" previous computations and thus avoid recalculating computations that are the same or similar to ones done previously. The technique works without requiring the programmer to make changes to the existing source code, thus providing a simple and transparent method of dramatically accelerating certain types of functions. The Phase I work had two main goals. The first looked at applying memoization to find the contexts in which it would be used. The second examined the technical obstacles that prevent automatic memoization from being widely used and identified practical solutions for overcoming these impediments. During Phase II we will implement versions of all five identified applications, beta test on at least two additional software applications being developed by Franz customers, complete commercial, ready-to-ship implementations of four of the five applications, and lay the foundation for using an automatic memoization in C++ and DYLAN. The fully commercialized tools will incorporate the technical solutions found during Phase I and would be distributed as part of Franz Inc.'s widely used suite of commercial Lisp products. The fifth application and full implementations in other languages would follow as commercial products in Phase III. The prototype implementation has already proven tremendously effective on a large real-life software application. The improvements and extensions identified in Phase I will make it even more useful to developers of large, complex software systems. Franz Inc. makes the world's most popular commercial Common Lisp implementation. Knowing the Lisp market intimately, Franz is convinced that the plan is technically feasible and that the end product is commercially viable.

Keywords:
software optimization caching memoization artificial intelligence lisp