A substantial advance in software and tools is essential for effective application of future High-End Computing (HEC) systems exhibiting tens of thousands (or even millions) of execution sites/threads in an integrated structure. Conventional practices, largely restricted to SPMD-based messagepassing programming models in the context of distributed memory, provide limited degree of system-wide application control but often prove inefficient and are difficult to program, debug, and tune performance for large complex problems. These challenges will only increase as clock speeds, memory densities, system scale, memory hierarchy, and problem complexity increase significantly throughout this decade to peta-flops scale before 2010.
This research project addresses the underlying sources of performance degradation (e.g. latency, overhead, and starvation) and the difficulties of programmer productivity (e.g. explicit locality management and scheduling, performance tuning, fragmented memory, and synchronous global barriers) to dramatically enhance the broad effectiveness of parallel processing for high end computing. The project will develop a hierarchical threaded virtual machine (HTVM) that includes a dynamic, multithreaded execution model and programming model, providing an architecture abstraction for HEC system software and tools development. The project will conduct research and development of a continuous compilation and runtime software technology that are critical to enable the dynamic adaptivity of the HEC system. The research project addresses the underlying sources of performance degradation (e.g. latency, overhead, and starvation) and the difficulties of programmer productivity (e.g. explicit locality management and scheduling, performance scalability, load balancing efficient synchronization, etc.), and and will implement these methods in a novel framework of system software and tools to dramatically enhance the broad effectiveness of parallel processing for high end computing.