Scott B. Baden
Department of Computer Science and Engineering
University of California, San Diego
email: baden@cs.ucsd.edu
Application performance is sensitive to technological change such as the rising cost of communication relative to computation. A general approach for tolerating the cost of communication is elusive. The difficulty is that the programmer must partition and schedule computations in order to mask latencies, but the exact strategy and policy depends on the application, the system, and even dynamic operating conditions. I present the notion of a "canonical program variant" that relies on flexible scheduling of coarse grain data flow tasks to reorder computations dynamically, and is similar to Instruction Level Parallelism approaches employed in modern CPU architectures. The approach eliminates the need to hard code into the application the strategy for overlapping communication with computation, enabling the application to respond dynamically to data dependent and environmental conditions.