This widening gap motivates a proactive approach, driven by application requirements, which provides the memory system with enough slack to hide memory access costs from the computation. While several researchers have demonstrated the effectiveness of application-driven proactive techniques in parallel systems, most such approaches have been ad hoc and require a large degree of programmer involvement.
The InSight project focuses on developing integrated language, compiler, and run-time techniques that would enable automatic use of application-driven proactive memory hierarchy management techniques in general programming contexts. Our efforts are focused on efficient software support of the shared object space required by programs expressed in a concurrent object-oriented language (e.g., Java) when executing on a distributed cluster of commodity workstations. More recently we have also been looking at use of application information to permit distributed applications to adapt to the performance and security properties of their execution environments.